{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright (c) MONAI Consortium  \n",
    "Licensed under the Apache License, Version 2.0 (the \"License\");  \n",
    "you may not use this file except in compliance with the License.  \n",
    "You may obtain a copy of the License at  \n",
    "&nbsp;&nbsp;&nbsp;&nbsp;http://www.apache.org/licenses/LICENSE-2.0  \n",
    "Unless required by applicable law or agreed to in writing, software  \n",
    "distributed under the License is distributed on an \"AS IS\" BASIS,  \n",
    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  \n",
    "See the License for the specific language governing permissions and  \n",
    "limitations under the License.\n",
    "\n",
    "# Medical Image Classification Tutorial with the MedNIST Dataset\n",
    "\n",
    "In this tutorial, we introduce an end-to-end training and evaluation example based on the MedNIST dataset.\n",
    "\n",
    "We'll go through the following steps:\n",
    "* Create a dataset for training and testing\n",
    "* Use MONAI transforms to pre-process data\n",
    "* Use the DenseNet from MONAI for classification\n",
    "* Train the model with a PyTorch program\n",
    "* Evaluate on test dataset\n",
    "\n",
    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Project-MONAI/tutorials/blob/main/2d_classification/mednist_tutorial.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "!python -c \"import monai\" || pip install -q \"monai-weekly[pillow, tqdm]\"\n",
    "!python -c \"import matplotlib\" || pip install -q matplotlib\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MONAI version: 1.4.dev2426\n",
      "Numpy version: 1.26.4\n",
      "Pytorch version: 2.3.1+cu121\n",
      "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n",
      "MONAI rev id: d622a16f927841fdd7d057b7553805405f0805e4\n",
      "MONAI __file__: /home/<username>/anaconda3/envs/monai/lib/python3.9/site-packages/monai/__init__.py\n",
      "\n",
      "Optional dependencies:\n",
      "Pytorch Ignite version: 0.4.11\n",
      "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "Nibabel version: 5.2.1\n",
      "scikit-image version: 0.24.0\n",
      "scipy version: 1.13.1\n",
      "Pillow version: 10.4.0\n",
      "Tensorboard version: 2.17.0\n",
      "gdown version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "TorchVision version: 0.18.1+cu121\n",
      "tqdm version: 4.66.4\n",
      "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "psutil version: 6.0.0\n",
      "pandas version: 2.2.2\n",
      "einops version: 0.8.0\n",
      "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "mlflow version: 2.14.2\n",
      "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "\n",
      "For details about installing the optional dependencies, please visit:\n",
      "    https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "import shutil\n",
    "import tempfile\n",
    "import matplotlib.pyplot as plt\n",
    "import PIL\n",
    "import torch\n",
    "from torch.utils.tensorboard import SummaryWriter\n",
    "import numpy as np\n",
    "from sklearn.metrics import classification_report\n",
    "\n",
    "from monai.apps import download_and_extract\n",
    "from monai.config import print_config\n",
    "from monai.data import decollate_batch, DataLoader\n",
    "from monai.metrics import ROCAUCMetric\n",
    "from monai.networks.nets import DenseNet121\n",
    "from monai.transforms import (\n",
    "    Activations,\n",
    "    EnsureChannelFirst,\n",
    "    AsDiscrete,\n",
    "    Compose,\n",
    "    LoadImage,\n",
    "    RandFlip,\n",
    "    RandRotate,\n",
    "    RandZoom,\n",
    "    ScaleIntensity,\n",
    ")\n",
    "from monai.utils import set_determinism\n",
    "\n",
    "print_config()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup data directory\n",
    "\n",
    "You can specify a directory with the `MONAI_DATA_DIRECTORY` environment variable.  \n",
    "This allows you to save results and reuse downloads.  \n",
    "If not specified a temporary directory will be used."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/chyang/Documents/monai_tutorials_gitee/data\n"
     ]
    }
   ],
   "source": [
    "os.environ['MONAI_DATA_DIRECTORY'] = '/home/chyang/Documents/monai_tutorials_gitee/data'\n",
    "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n",
    "if directory is not None:\n",
    "    os.makedirs(directory, exist_ok=True)\n",
    "root_dir = tempfile.mkdtemp() if directory is None else directory\n",
    "print(root_dir)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Download dataset\n",
    "\n",
    "The MedNIST dataset was gathered from several sets from [TCIA](https://wiki.cancerimagingarchive.net/display/Public/Data+Usage+Policies+and+Restrictions),\n",
    "[the RSNA Bone Age Challenge](http://rsnachallenges.cloudapp.net/competitions/4),\n",
    "and [the NIH Chest X-ray dataset](https://cloud.google.com/healthcare/docs/resources/public-datasets/nih-chest).\n",
    "\n",
    "The dataset is kindly made available by [Dr. Bradley J. Erickson M.D., Ph.D.](https://www.mayo.edu/research/labs/radiology-informatics/overview) (Department of Radiology, Mayo Clinic)\n",
    "under the Creative Commons [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/).\n",
    "\n",
    "If you use the MedNIST dataset, please acknowledge the source."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2024-07-15 19:15:47,193 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n",
      "2024-07-15 19:15:47,194 - INFO - File exists: /home/chyang/Documents/monai_tutorials_gitee/data/MedNIST.tar.gz, skipped downloading.\n",
      "2024-07-15 19:15:47,194 - INFO - Writing into directory: /home/chyang/Documents/monai_tutorials_gitee/data.\n"
     ]
    }
   ],
   "source": [
    "resource = \"https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/MedNIST.tar.gz\"\n",
    "md5 = \"0bc7306e7427e00ad1c5526a6677552d\"\n",
    "\n",
    "compressed_file = os.path.join(root_dir, \"MedNIST.tar.gz\")\n",
    "data_dir = os.path.join(root_dir, \"MedNIST\")\n",
    "if not os.path.exists(data_dir):\n",
    "    download_and_extract(resource, compressed_file, root_dir, md5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Set deterministic training for reproducibility"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "set_determinism(seed=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Read image filenames from the dataset folders\n",
    "\n",
    "First of all, check the dataset files and show some statistics.  \n",
    "There are 6 folders in the dataset: Hand, AbdomenCT, CXR, ChestCT, BreastMRI, HeadCT,  \n",
    "which should be used as the labels to train our classification model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total image count: 58954\n",
      "Image dimensions: 64 x 64\n",
      "Label names: ['AbdomenCT', 'BreastMRI', 'CXR', 'ChestCT', 'Hand', 'HeadCT']\n",
      "Label counts: [10000, 8954, 10000, 10000, 10000, 10000]\n"
     ]
    }
   ],
   "source": [
    "class_names = sorted(x for x in os.listdir(data_dir) if os.path.isdir(os.path.join(data_dir, x)))\n",
    "num_class = len(class_names)\n",
    "image_files = [\n",
    "    [os.path.join(data_dir, class_names[i], x) for x in os.listdir(os.path.join(data_dir, class_names[i]))]\n",
    "    for i in range(num_class)\n",
    "]\n",
    "num_each = [len(image_files[i]) for i in range(num_class)]\n",
    "image_files_list = []\n",
    "image_class = []\n",
    "for i in range(num_class):\n",
    "    image_files_list.extend(image_files[i])\n",
    "    image_class.extend([i] * num_each[i])\n",
    "num_total = len(image_class)\n",
    "image_width, image_height = PIL.Image.open(image_files_list[0]).size\n",
    "\n",
    "print(f\"Total image count: {num_total}\")\n",
    "print(f\"Image dimensions: {image_width} x {image_height}\")\n",
    "print(f\"Label names: {class_names}\")\n",
    "print(f\"Label counts: {num_each}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Randomly pick images from the dataset to visualize and check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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73//ezv77LPtxBNPtGuvvXa7bR555BEbNWqUde7c2Q4//HBbtGhR4u/XXnutDRo0yHbZZRc79dRT7c0339zuGFdeeaXts88+1rFjRxs2bJjdcMMNib/ncjn71a9+ZR/5yEdsl112sREjRtjcuXNt6dKldswxx9iuu+5qRxxxhL300kuJ/W6//XY79NBDrXPnzrb33nvbxRdfbO+9917iuL/5zW/s1FNPtV122cWGDh1qd9xxR/j7/Pnz7Yc//KH99Kc/tR//+Md2xBFH2F577WUf/OAH7Y9//KNNmTLFevbsaf369bN+/fpZ7969zcysV69e4bOePXuWPO5CCJ8333zTTj/9dNtjjz1sl112sZEjR9rvfve7xDbHHHOMnXvuuXbhhReGNfrd7343sc2LL75oRx99tHXu3Nn2339/u//++1vwLIQQTYV8ws6HvgRUADfffLMNHz7chg0bZp/5zGfsf/7nfyyfzye2+drXvmY//elP7bHHHrPevXvbSSedZFu3bjUzs0cffdTOPPNMmzZtmi1cuNCOPfZY+/73v5/Y/9Zbb7XzzjvP/vM//9MWLVpkX/nKV+zzn/+8PfDAA4ntvve979kZZ5xhCxcutOHDh9unPvUp+8pXvmIzZsywxx9/3PL5vE2bNi1s//e//93OOOMMO++882zx4sX2q1/9yq699lr7wQ9+kDjuxRdfbB//+Mft6aeftg9/+MP26U9/2t566y0zM/vtb39rXbt2tf/4j/8oOj56t0GIlmfTpk02evRou/vuu23RokX25S9/2T772c+GSFyB6667znbddVd79NFH7Uc/+pFdcskl4abe0NBgp512mnXs2NEeffRRu+qqq+zrX/96a5yOEKJM5BN2QvKi1TniiCPyl19+eT6fz+e3bt2a33333fMPPPBAPp/P5x944IG8meVvuummsP2bb76Z79KlS/73v/99Pp/P508//fT8hz/84cQxP/GJT+Rra2sTbXzpS19KbPOxj30ssZ+Z5b/1rW+F3+fOnZs3s/zs2bPDZ7/73e/ynTt3Dr8ff/zx+R/+8IeJ495www35/v37u8fdsGFD3szy99xzTz6fz+dPOOGE/KhRo1JGKMmyZcvyZpZ/8sknM+8jhPg/pkyZkm/Xrl1+1113Tfx07tw5b2b5t99+u+h+J554Yv4///M/w+8f+MAH8kceeWRim7Fjx+a//vWv5/P5fP6+++7Lt2/fPr9y5crw93vuuSdvZvlbb721yc9LCNE45BOqE0UCWpklS5bY/Pnz7fTTTzczs/bt29snPvEJmz17dmK78ePHB7tnz542bNgwe+6558zM7LnnnrNx48a52xe2mTBhQuKzCRMmhGMUGDVqVLD79u1rZmYjR45MfLZp0yarr683M7OnnnrKLrnkEuvatWv4+dKXvmSrV6+2d999t+hxd911V+vevbutXbvWzGy7qIcQovk59thjbeHChYmf3/zmN+Hv27Zts+9973s2cuRI69mzp3Xt2tXuu+8+W758eeI4XNtmZv379w9r+7nnnrOBAwfagAEDwt9j3ySEqAzkE6qP9q3dgWpn9uzZ9t577yUWRD6ft06dOtkvf/nLFu9Phw4dgp3L5dzPGhoazOz99xkuvvhiO+2007Y7VufOnYset3CcwjH2228/+8c//mFbt27dbjshRPOw66672r777pv47LXXXgv2j3/8Y/v5z39ul19+uY0cOdJ23XVXO//8823Lli2JfdLWthCi7SCfUH0oEtCKvPfee3b99dfbT3/608Q376eeesoGDBiQeOFm3rx5wX777bfthRdesBEjRpiZ2YgRI+zRRx9NHJvbF7Z55JFHEp898sgjtv/++5d1DoceeqgtWbLE9t133+1+amqyTa9PfepTtmHDBrviiiuK/l2pyYRoeR555BE7+eST7TOf+YwddNBBtvfee9sLL7xQ0jFGjBhhK1assNWrV4fPYt8khGgbyCfsfCgS0Ircdddd9vbbb9uZZ55ptbW1ib9NnjzZZs+ebT/+8Y/NzOySSy6xXr16Wd++fe2b3/ym7b777iGn77nnnmsTJkywn/zkJ3byySfbfffdZ/fee2/ieF/72tfs4x//uB1yyCE2ceJEu/POO+1Pf/qT/fWvfy3rHC666CL7yEc+YoMGDbJ///d/t5qaGnvqqads0aJF272c7DFu3Di78MIL7T//8z9t5cqVduqpp9qAAQNs6dKldtVVV9mRRx5p5513Xln9FEKUxtChQ+0Pf/iD/fOf/7TddtvNfvazn9maNWtK+sfBxIkTbb/99rMpU6bYj3/8Y6uvr7dvfvObzdhrIURzIZ+w86FIQCsye/Zsmzhx4nZfAMze/xLw+OOP29NPP21mZpdeeqmdd955Nnr0aKurq7M7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j5EjR6J379446qijcO2112Lu3LkAgIsuugjDhw/HxRdfjOrqaowbNw779u3DnXfeGTtWQUEBysvL0alTJ5x44om45JJLMH/+fOzYsaMhuiYIPQQ0cd5991189atfxciRI/HGG2/gr3/9K15++WWMGTPGbbNv3z7cdtttWLJkCR5//HGsWbMmJs1Zt24dzjvvPJxzzjlYvHgxfvjDH+KnP/1prJ4HH3wQRx55JEaMGLFfGwoKCnSDL0Qj47PPPsPAgQPx1FNPYenSpbj00kvxve99D/Pnz49t98ADD6BVq1aYN28e7rjjDowfP97d6FdXV+O8885DcXEx5s2bh6lTp+KGG25oiO4IIQL5+OOP8cwzz2D06NFo1arVft+3adPGladOnYoVK1bgwgsvxG9/+1tMmzYNrVu3No/9wQcfYPr06WjWrBmaNWtWF80XmRCJRsuoUaOiZs2aRa1atYr9a9GiRQQg2rp1a3TJJZdEl156aWy/l156KSosLIx2796d9rgLFiyIAESffPJJFEVRNG7cuKhfv36xbW644QZXRxRFUd++faNvfOMbwW2fNWtWbH8hRP0RYjvS8bWvfS267rrr3N+nnnpqdPLJJ8e2Of7446MbbrghiqIomjFjRlRUVBStX7/eff/0009HAKLp06fXer+EEDVn3rx5EYDoscceC9p+6tSpEYDoiiuu2O+7adOmRQCiVq1aRQcddFAEIAIQXXXVVbXdbJEFeiegkXP66adjypQpsc/mzZuHiy66CACwZMkSvPHGG3jwwQfd91EUobq6GqtXr0bfvn2xaNEi3HLLLViyZAm2bt2K6upqAMDatWvRr18/LFu2DEOGDInVMXTo0NjfURTVRfeEEHXEgWxHVVUVJkyYgL/97W9Yv3499u7diz179uCggw6K7XP00UfH/u7UqZOTEy5btgxdu3ZF586d3fe+7RBC5BaZXM+rqqpw//3346CDDsLcuXPx+eefo6gofmt58MEH47XXXsO+ffvw9NNP48EHH8Qvf/nL2m62yAI9BDRyWrVqhSOOOCL22fvvv+/KO3fuxGWXXYarrrpqv30rKiqwa9cuDB8+HMOHD8eDDz6I9u3bY+3atRg+fDj27t0b3I7evXvjnXfeyb4jQoh65UC2484778Tdd9+NSZMmYcCAAWjVqhXGjh27n11o3rx57O+CggL3Q4IQovHRq1cvFBQUBF3Tf/3rX2PVqlVYuHAhTj31VEyYMAE33XRTbJvCwkJna/r27Yt3330XV1xxBf7nf/6nTtovwtE7AU2c4447Dm+//TaOOOKI/f4VFxfjnXfewUcffYTbb78dp5xyCvr06bPfS8F9+/bdTwecejEoxb//+79j+fLleOKJJ/ZrQxRF2L59e+13TghRZ7zyyisYMWIELrroInzpS19Cz549sXz58oyO0bdvX6xbtw4bN250n/m2QwiRW7Rt2xbDhw/H5MmTY0FEUqRCCL/11lu4+eabMWXKFPTt2xdTpkzBL37xC7zxxhuJx//pT3+Kv/71r3jttdfqovkiA/QQ0MS54YYb8Oqrr2LMmDFYvHgxVqxYgSeeeMK9GFxRUYHi4mLce++9WLVqFf7+97/jtttuix3j8ssvx4oVK/Af//EfqKysxEMPPYT7778/ts3555+P73znO7jgggswYcIELFy4EO+99x7+8Y9/YNiwYZg1a1Z9dVkIUQv06tULzz33HF599VUsW7YMl112GTZv3pzRMYYNG4bevXtj1KhRWLJkCV566SX87Gc/q6MWCyFqi8mTJ6OqqgqDBw/Go48+ihUrVmDZsmW45557MHToUHz++ecYNWoUzjvvPJx33nkAgJEjR2LkyJG4+OKL8fnnn5vH7tq1K775zW/u5zEQ9Y8eApo4Rx99NGbPno3ly5fjlFNOwbHHHoubbrrJaXTbt2+P+++/H4888gj69euH22+/Hb/+9a9jx6ioqMCjjz6Kxx9/HF/60pcwdepUTJgwIbZNQUEBHnroIfzXf/0XHn/8cZx66qk4+uijccstt2DEiBEYPnx4vfVZCFFzbrzxRhx33HEYPnw4TjvtNJSXl6dNMJZEYWEhpk+fjt27d2Pw4MH44Q9/KC2wEI2Anj174rXXXsPpp5+O6667Dv3798dXvvIVzJw5E1OmTMGECROwfv16/Pa3v43tN3nyZGzcuHG/ewSfa665Bk899dR+KgNRvxREeqNTCCGEEEKIvEKeACGEEEIIIfIMPQQIIYQQQgiRZ+ghQAghhBBCiDxDDwFCCCGEEELkGXoIEEIIIYQQIs/QQ4AQQgghhBB5hh4ChBBCCCGEyDP0ECCEEEIIIUSeoYcAIYQQQggh8gw9BAghhBBCCJFn6CFACCGEEEKIPEMPAUIIIYQQQuQZeggQQgghhBAiz9BDgBBCCCGEEHmGHgKEEEIIIYTIM/QQIIQQQgghRJ6hhwAhhBBCCCHyDD0ECCGEEEIIkWfU2UPA5MmT0b17d7Ro0QJDhgzB/Pnz66oqIUQjQDZBCOEjuyBEw1EQRVFU2wf961//iu9///uYOnUqhgwZgkmTJuGRRx5BZWUlOnTokLhvdXU1NmzYgIMPPhgFBQW13TQhGjVRFOGTTz5B586dUVjYeBx5NbEJgOyCEBaN1SYAulcQoq4ItgtRHTB48OBo9OjR7u+qqqqoc+fO0cSJEw+477p16yIA+qd/+pfwb926dXWxdOuMmtiEKJJd0D/9O9C/xmYTokj3Cvqnf3X970B2oQi1zN69e7Fo0SKMGzfOfVZYWIhhw4Zhzpw5+22/Z88e7Nmzx/0d/T/HxNixY1FSUlLbzduvnlT70n1ubeNTXV2d9nP+dYLLfFz+3D8O1/n555+7crNmzcy2pDtuVVWVuS/XabWX9+c2cdnaBoj312pLyPjwvj7WmFj9s7Dake7vTI5bW+zZsweTJk3CwQcfXG911pRMbQLQcHbBojbPfdKaDzmutT6sfSybljTXrbaE7MPrn89hcXGxWUeIHWJC+pTU3kzHIalNSWNXHzRGmwDU3r1Chw4dEq85NT0/ma79pPqs9V5U9L+3Ynyt5+15m9BrLGNdr62x4vr8/fft25f2c+ueyWoT9xWIj2nz5s1dee/evQesz1qj/pjz33zfwPX57aoLrPlj9cM/5/x3unup6upqbNy48YB2odYfArZs2YKqqip07Ngx9nnHjh3xzjvv7Lf9xIkTceutt+73eUlJiR4CjJOcKw8BfCxeNLX5EGA9CPlYx+L6msJDQEPWmS2Z2gSg4eyCRW2e+5CLY64+BHDbLbtn2Sf/ISBkneohIJzGZBOA2rtXKCwsbDQPARbWj2uh24T017rPsdZx0k2nZRMyva9KWq9WfZnePCfVEVJfXWGd52weApLafqC+1PpDQKaMGzcO1157rft7x44d6Nq1a53XG3JxSFpYIZMn01/vk7AeAqwneqt9/o10ixYtXPmzzz5zZf4VgMt8XN6en6KTHmb4WFZ7uY38OffbXxD8SwG3pTYNdYjxyZUbgsZOQ9kFi9q8KNTkhjd0u0x/mEi6sbUe4q15z9uwfUl6iA/5BTFE75704J7pjUTI50nILtQulk2oqqpKHN+ajn2mXqpsHhL5Wmodi9eC/+NByHq31i5fV/k4/Gs/EF+/XOZrulUHr13+EYev1X6dIT8YMtb4+PdebJN4u08//dSVfS9IOpJsQoi9yHReJtm2dMcKPX6tPwQceuihaNasGTZv3hz7fPPmzSgvL99v+4b6ZU8IUT9kahMA2QUhmjq6VxCi4an1UALFxcUYOHAgZs6c6T6rrq7GzJkzMXTo0NquTgiR48gmCCF8ZBeEaHjqRA507bXXYtSoURg0aBAGDx6MSZMmYdeuXfjBD35QF9VlhfVySKgLN1MZTogmLlQHbL2UY71fECqjsbDc+Jbsxh+3EJc+18HaYauvvjvUcmlaMoOQdzRC3Wly9R+YxmAT6ouQd41qOqcs2V2oVjrULqWw3hVIeleIt7PGIUQGUJv6b4tQuUlj0+U3NLVhF9LJgepjHmRzrjN958SS2YWu3ZD7Dl6HSZIj9sJw+NZDDjnElfl+4qOPPkpbZpKCBbDtsMbBkiozvlQq5MVpi9pc35nedzQaORAAfOc738GHH36Im266CZs2bcIxxxyDZ555Zr8XgIQQ+YFsghDCR3ZBiIalzl4MHjNmDMaMGVNXhxdCNDJkE4QQPrILQjQcDR4dqKEIiSvP+G6gkHBZ1rGykZlwe/lzdpn5b9qnSIrVHeICs+q22ufLh9iNyPIeHjd26/E2Vt3++bBchJbrL9TlJkRtEyLhy0Z2YMnlaipbCAmbzPVZ8bazsXuWDWVCwwHWRJIZGinO2kfUHVEU7TdPajr2NYnukk2kohBpSJJNsKTHVpQc6x4iyW60atXKlY844ghXrqiocOUdO3a48urVq115586drsyRkPw6rPXOn/M9jDUmSdEKQ+5BQqjNiFR1ITMLbUPjyjEuhBBCCCGEqDF6CBBCCCGEECLPyFs5EBPicvPlQ5bLLSQRUOhb7Ay7t0KSk/HnLVu2dGU/hTS7wPgN/pDseUmJRRgrqoElnQp5U96PasR9DJEA1TRaE6OkQPlFaGQOC8stbx0nNJGXtYZqSkhmS17/LP/jxDy7d++O7R8i9cs0i2c2UWIylfOEZuSULahfQsa7plF1smlHiATIui7WNIttpvJkK8qeD9+PWDKagw46KG2Zr93+tTpkHHj/EAml3z4r4lhd2c9cR54AIYQQQggh8gw9BAghhBBCCJFn6CFACCGEEEKIPCNv3wmwstiGhg619HJWps6Q0KN+3ZaWnrW13Haum98P4LKVuc+v36qbswN+/PHHB2wHENfwWeE7Ld0xf85aY3976x0Na3wtLWE2SPubXyS9AxIS6o3nXogO1bcdIdlFQ95TCX3vwGojl62wfZ988okr8/pNIuS9rJCMp/53lp0PCaeaTQg/ZRLODUJDOYZk1A09bqZY1yZ+1yb0PQU+ljXPQ663/lritvB3/DnvzzYhdL1Z48D3MHwP0b59+7T7bt261ZU//fTTWB3cLn63weoHE/rOYKZhh2tqHxQiVAghhBBCCBGMHgKEEEIIIYTIM/JWDpRpCEzfJcj7cxg8DoW1ffv2jNqUlAWQXWAh7kJ2eXFGv1WrVsXqYBcay3asMH3s3uc2cRZAlgwBQJs2bVx5zZo1rsxjxfVxZsJdu3a5Mo8nhwQF4hIpK3xZNqFZmUyzPYrGR6bhYpNkNBbWfLNc0L5bnuc3S2wsl7mfwTuFJa8B4nbFCslnZSPlfdk2+oSEBQ5Zm0nbW+eQx5rHJ9NszqLhOZAUIptwn5nOu5oSIq/h8N7+uuJ9ODsvXxetewhLJpQkrWMbxGWW51j3E5bd8LHWdY8ePVy5W7dursxj8u6776YtA8CePXvSHpfLVrtCw75nE2r8QGQa/lhyICGEEEIIIURa9BAghBBCCCFEnpG3ciAmJEIAu7yAuEuLXW7sagqRFlhRbYC4S4olNVaEHetNd5bn8HEA4IorrnDluXPnuvKbb77pymVlZa78/e9/35WXL1/uyiw5uueee2J1sHSHXXZf+cpXXJllSpWVla7crl07V77wwgtd+fnnn4/VsXHjRlfmcdixY4crZxodKJuMwaJpks05DrErVjQNKzoXEJfRsUSAbQ8fiyV8LK9jCZ/fvxDJkuXi58+PPfZYV168eHHsWGzHuBwii2IJT1LUE8vWWpILSyJl9TUJ2YX6oSZyoBDJBM+PbLISZ1oHl/l6ffjhh7typ06dYvvzGl+5cqUrr1u3zpWtSFkW/jy35r21ftgGsWzRiqAI2OuS7xusMtvF0tJSV2Z5MRC3HVZm4UzlYNnIgULsQ2gkugO1Lwl5AoQQQgghhMgz9BAghBBCCCFEnpHzciDLHZLk6giR3ljbswuqS5cursxuNX87y00WEo3GqhsAunbt6sodOnRwZXb3sUu/devWrsxJwVgew0k0AGDKlCmuzLKfDz/80JU5Kdgtt9zidwdAvE+DBg2Kfcd95H68/vrrrvz++++7Mo/n5s2bXfn3v/+9K59xxhmxOrZt25a2zH3idliRm5LOhxV9JSTZkKgdqqurUV1dbUq7ktZ7TdyyIcmz/O24jbwGrSQ4LOfh+eVL+Dj5DbvDrShAluSIo3ckSVxCbCj3ievYtGmTua8VEcWS5Fjrj8eHjwPE+8jnwEq4yOfAkgr40lDex5JL1TSSTNJ1MN+jFdWWHChTqU82UYesY1nyE14LfH1n6QsQnx98zePrqjXP/fmcgtcxEF8zLCvkdvE6YQkQt5f76icW5TbyvY0VGcmK4sPb+HVY0ct4TJKiFqWozWt9yLxKknClu2+RHEgIIYQQQgiRFj0ECCGEEEIIkWfkrBzoQG7OUFeM5WZj1zK7rdhV5EuAGHYzc/Qb6+12xuqX78rmiDcc5YYlPXwsdmdxVB12CXIyD8CWxbA7zJIpWK5v34346quvpq3DklRZiY7YbTlr1qzYsazIB3wsljWFtCNpO0YSoPqjqKgIzZs3N2UeSVEdrPNkuV+T3NYWVqQMbi+7tv2kdyksaQ8Qd8tb9saSq3E5KUJWpsluLNkOy4H8c8N1Wu1lOMoH2zeWDfgyCR4rKzoQnyfL/c7nzx8rq+21mUQwScqa7/antsYgRHpcmxIgC55rfO3lsn/dZgkQrw2+t2EJj5VE04qcA8TXg2U7Dj30UFfmiEVso5OusdxeK2IS20+WAoZE+fLJ9BzmarKwdHO3zuRA//rXv3DOOeegc+fOKCgowOOPP75fw2666SZ06tQJLVu2xLBhw7BixYpMqxFCNBJkE4QQPrILQuQ+GT8E7Nq1C1/60pcwefLktN/fcccduOeeezB16lTMmzcPrVq1wvDhw2O/1gghmg6yCUIIH9kFIXKfjOVAZ511Fs4666y030VRhEmTJuHGG2/EiBEjAAB/+tOf0LFjRzz++OP47ne/G1xPysUXknDLx4rewWWOvGMlmkpyW1kSIK4jKYpICityBxB3/1nua4br46g6/Ab8li1bYvtYcgI+FrvoQtyhvvyH+85tt8bNirDCrkpfWsDbcT9YOsV1WHIuK1oAYEcB4s9Dogo0NerLJgBfjPXnn39uJnZJknZZLmx2KbML26qD9+X54tfJ211zzTWu/NBDD7kyu+g56g/PdX9OWTI8K9pPyJrNxmXOn7Pt4nVtrXHAtjcWVnQSHjc/MRDLKHlM+Jxbkgk+Bzy2vlTLSn5kyYxCCI1slcvUp12oS+pbDsTnmucjl1kSA8TlQDxXy8vLXZmTcFryxlC7Y40Dy/F4jbFEyUpwCNjSpJBIYlbUtSRpJcP3frUZcauuoncdKGJdiE0FavnF4NWrV2PTpk0YNmyY+6ysrAxDhgzBnDlz0u6zZ88e7NixI/ZPCNE0yMYmALILQjRldK8gRG5Qqw8BqZfAOnbsGPu8Y8eOsRfEmIkTJ6KsrMz941/ohRCNm2xsAiC7IERTRvcKQuQGDR4daNy4cbj22mvd3zt27EDXrl3TyoGycatYb4yzBIgJjehguds7derkymzMLLmLlQDHby/Xx31i1xjvz/uyxtKPcMNSGCsChtVe7pOVcMSv35IGWdIpS5LlS6cYP8pSCh4fS75gRVvy97eiGeV74p7awrILKazILaERfVg2wr8o8v6WBIjlI77LnKUpvCZ+85vfpG2HFSGHy9w/ICzpWYjsJ1RiEhI9ydomSRLDf1uSOksewNFReF9/rHgNs1She/furvzee++5MksYLrroIlf+1a9+lbZ9gO12r4ktSEpC55/DxigVygbLJqSLhpKNhCdE9lYfciC+NvG184MPPnDlzp07x/bhOcn2iROerlmzxpV5LVnyQv/ay3VYa5TllPw5S4B4HbLED7BtCo8J719aWmoeK4UvB7LuZ5ikxFzpSLJtFjWx40nf1Xl0oCRS+jPWo6f+Zm0aU1JSgtLS0tg/IUTTIBubAMguCNGU0b2CELlBrT4E9OjRA+Xl5Zg5c6b7bMeOHZg3bx6GDh1am1UJIRoBsglCCB/ZBSFyg4zlQDt37sTKlSvd36tXr8bixYvRtm1bVFRUYOzYsfjFL36BXr16oUePHvj5z3+Ozp0749xzz63NdtcYSzZgyQx89xC7bPg7dtlZb9NbEYSS3G+M5coL6ZPvImIXmiWx4fo4GgqPT1L0Ij4uH4s/t6QB/DnLK/wwclZ/M41Awsf19aosG2GZQT5GBGLq0yYUFhaisLDQTCKXdI557nLiOEsmZiWXSpKfhEjDLPe7JUXyZU0hcsCQuZ5NMkZLAmjJBJP6wW3ncbfGwYoslgSfc5ZqLVmyJO32HE1swoQJabdJcv2HSDizidDUGCU/9WUXMpEDWfsmUZuJ3kKlHum24XsLnqdAPAoQS9r4enbIIYe4siVVZqmNb9t4zfG65M/ZJvCxWA5kSXEB2zayfJMlzJacOURSDNjnwLKfocnCaotsorZl2paMHwIWLlyI008/3f2d0uiNGjUK999/P66//nrs2rULl156KbZt24aTTz4ZzzzzzH6h9IQQTQPZBCGEj+yCELlPxg8Bp5122gF/QRo/fjzGjx9fo4YJIRoHsglCCB/ZBSFyn1p9J0AIIYQQQgiR+zR4iFCLKIoSsyaGaqWskFNW+EDW0LF2zY9J/P7776f9bt26dQdsB+tGkzTEltaUsTTvrI+zdKpAPJwYf8caPH5vwBofS//qf8f9tbITWhpD7p///oI1vjwOVt38OY+Hr7vkY3H9SVlqRe2SsgvW+k/SjVvvv7Cu1NLNWvp3f65bmaitd14sm5b0nokVTjc0Q2QImeqVQ2xz6Nrg41rv91g2zR8DK7SrdV2w6kt6t4i/Y1tiZR+36maSQoT6nysscTKZ6vCT9q+P+tlu8Zzld1rWr18f24dD3vbu3Ttt3Ycddpgrc4hdtovW+zhAfJ1xW6zQnNa6SAonbu3TunVrV+Z1FZLF2Lc71vuc1vuZIe8B+HMkxB5adtwi05DODRIiVAghhBBCCJH76CFACCGEEEKIPCPn5UCWCyQ0vJ3lIrJCgbL7rV27dq787rvvxurg8JHsmrNcPFabklw8IVn9rDCm7HKzQvH5sKyJpTDcXnbLcfuSQvbxdyyRsNxv3HbLLZfkkrfCJvKxrFCnSVgSsrKyMlfm0JOi7rAkX5ar1+fwww935S1btrgyy/wsaZGVLROIry9LkmetzVAZDW9nSdxCMl7WVEYSEgIzqR3WerbsppX5PElqYIU1ZKxrAdsIKwSq/7dlSyx5VzYSrtDrR75woBCh6bY90HYHqiupnImUK90+If3wpaos7+FjtW/f3pVZJrRz505X5nubpNDXvN55O2bbtm1pPw/NIm6FIOZr7KGHHurKHIaUQ3hb133AluNZ9xrZhOLMVE4ZetwQMt1fngAhhBBCCCHyDD0ECCGEEEIIkWfkrByooKDA/UsRmgXQkgRY0XrY7cQuYI4O4icwOf7441356aefdmUraye7wCzXsu86t6JThGwTEpEHiPeLZU2dO3d2ZXYd8v4sidq8ebMr+65CroPbxdIgK3qGRVL0FMsdxuPD9Vnn7LrrrovtP336dFdesWLFAdsoap+UTJDPkyWV8+VbLHdjF/igQYNcecGCBa7Mc5XnmyU98+u0ZD+WXbDsW5LExWqj5drOBmt/lk5aMgJua9u2bWP7s11hG8Hjw/aGpYih8hpLnhWSldyy0/54WDIs7rvVP4uaylbyierq6kQJTuh9g0XIsWp6XOs6bslufNkZ36usXbvWlTmTMEsgWba6ceNGV2ZJjX/PY/WRr+Ms1eF+sJSPpT2ha4nr4LXLkYl27drlyjw+/liFSA+t+61s5OmZyn5C5X61lbFYngAhhBBCCCHyDD0ECCGEEEIIkWfkrBwoXXSg0KRMIZF4Dj74YFf+5JNPXJldShwdiF1YADBjxoy07fL7kA7rzfUkN3GIC8t66z0p6Rgn/bBkQwMGDHDl9957z5XZdW653ZPaxS7CkCQcSUl2QhIJWdtb4z5p0qTY3zxnODkLu19D2p6U9MySKSR9lk+kJIKWHCgpSUyHDh1cec2aNa48f/782PGtelNYUkLAjvZjSc5C1qkv4bOSilnRiCzZQehcsmwP18fJBa1kQL60wbIZ1vrgPlnryR8rK5KTtf5DEqAlRSazrj2WXIplDmwPk5Ke+f1QhKAvqKlUx9qH1y7LTyyJV5JEkOenJQu01jfbM75n8f+2bFCnTp1c2UpwumzZMlf2r+N8LO4Hb8fJFrntq1atcmXuN0sKgfg64fa2adPGlUtLS5EOXoccpci/DoQmfkwRck2ozTVYm5KzEOQJEEIIIYQQIs/QQ4AQQgghhBB5Rs7KgZo1a4aioqKgREChkQHYDcTuM8u9z3KglStXJrY1heVesmQpocmNQtxCIQmC/Hawu50lT+zC5Mg/HD2A3dc8bv754IQe1nYcrcCSL1hyAP/vkDf+QyQA3D9/H3Y3WnOR5wK7PflzX75gtTG1fzbJhZoS1dXVqK6ujs0jSwbjr4e5c+fGjpOC57q1tiz5iV8Ht4vLVsQcKxIIzws/ypElebKS2TFWxJukxEDcD66bpSyMlcDQxxprK6Ehj4+VqMy3b5YtYSmHddxsCLHTfA769evnyizFSEoQ58ufatrmfCIp6pJ1vlgyy/OGo+2wXIUj9QDAhg0bXNlKRhcS8cuSsQB2wkO+h+E6WLbTo0cPV+YIgb7kyJI3fvTRR2nby+uY2+tHHWJ4jbLsh6MOHXbYYWnbyP1LOq9WlEjrOl4fcqCQ604S6doSKh+SJ0AIIYQQQog8Qw8BQgghhBBC5Bk5KwdKJQSyXNZJ0RosrDfzOeoLu6A4gojv1rbkAZaLKCRhRGiCmJBoHyGJSAA7Gg27FznyB58DS57Db/UD8XFnGQ2PtZU4zEp6lCQBY3g761hWJIgkiQR/xwlZ2BVrySgYjjIExOcctzHlkraSx+QLKZmgJQex1qK/XUh0qBB3rz9HrPXBWDKhkCgi/nchsh0rGgcfx5+f3BbuO69TK5qRVbdPSKI0bgefM2t8fPtm9YOx5kKIXffbG2L/rfPMMon27dvH6mA5qi+p9KUhIjzCSsh2fL5Y9sPJMll240e8YVgaZMmMWIbK5zYpQSbLYj744ANX5oR83N6KigpX5ms9Rw1aunRprA5LjsRjxZ9bMmArepj/HY8134OwNIj7x2NgRRsDwiKGWXMhm2RhFiH2jwlNHJYp8gQIIYQQQgiRZ+ghQAghhBBCiDwjZ+VAqSgg7KIJTbJlveVtJefg7TkSDr9tnuTCYiwXD2O5bpJc51aUDcuNaEUd8SOI8N/sFuQ3+zlyD7edE6ew+5ojDAC25IHrY0mWn6QkRZJbLsQdZiVesT73k77wmLB7kvsbEnmAYflQ0nZJERXyic8//xz79u0zZYLsivejW1iRqTKV7VkRq/zvGGsu8Bzjc8zH5XXmt8WS5PFxeUysyD1JyakseQMfi2VCNY2awXWzZILXnyUTSoqUw2PC5ZCoSknu/kz7yGPNkotzzjnHlf/5z3+adfgSznyPGJZKIBgi28gGK8Gldb3kyDtAfG3wWlqxYoUrWxHDLNvkz0e+xvP1mst9+vRxZZbqsCyXr+N+P7Zu3erKvC65Tzw+bM94DPzrKsPt4miFln3hY7GdTKojJIpiiEQ05POakhQFM+m7jOrIek8hhBBCCCFEoySjh4CJEyfi+OOPx8EHH4wOHTrg3HPPRWVlZWybzz77DKNHj0a7du3QunVrjBw5MvbruhCiaSG7IIRgZBOEaBxkJAeaPXs2Ro8ejeOPPx6ff/45/vM//xNnnnkm3n77bSePuOaaa/DUU0/hkUceQVlZGcaMGYPzzjsPr7zySkYNKywsRLNmzWKuT+uN9FBXiPVWOMsGQpN3MZabLilSSbrtfUL6xS43flOepQ9W8h0AaN26tSuz+41df1aEAZbBsOvQly9Y0iLu+65du1w5JIFHknzBesvfOq61jT9uVnQZjlbAc3T79u2uHCrDsM55yr2Zi5FA6tMuFBUVoXnz5uY5S5J5WGvNSrhlRYphQm2PNY+5bksG58Nr20oyxC56K4qP1T4gLhHgOqyEQVbEoqSIJtb48rqzIpKw/MEaTx/uY6g8obawpKjcv6eeesqVzz333Nj+zz//vCuzrSwoKAi+TtUn9WkTUoSsxdDEogzPKb5X4Eg/LA/lqDZA/BrLc5ivk6tWrUpbtyVD9tvKbeToQJy4jOcNy285ItDy5ctduVevXrE65s+fn7YtvH7YhrFciu9T2G60bds2dixelzyObI/4foTlR9yOpCh6lsSqJtfWbKIDWdcUaz1nOndD25TRQ8AzzzwT+/v+++9Hhw4dsGjRIvzbv/0btm/fjj/+8Y946KGH8OUvfxkAMG3aNPTt2xdz587FCSecsN8x9+zZEzthnJFWCJH7yC4IIRjZBCEaBzX6CSH1S2fqaW7RokXYt28fhg0b5rbp06cPKioqMGfOnLTHmDhxIsrKytw/fioVQjQ+ZBeEEIxsghC5SdYPAdXV1Rg7dixOOukk9O/fH8AXrqfi4uL93GEdO3aMuaWYcePGYfv27e7funXrsm2SEKKBkV0QQjCyCULkLlmHCB09ejSWLl2Kl19+uUYNKCkpSRuCLl3oM/47SedqhZCyNPqs2WO9WUi4T3871pWF6tnTbe9jaV05Ay+3g92mrOP39frsUmUNO4fqYvhzPu7atWtd2dcxcp2sB+T3CD766CNXzjR8IxAWVs1638OaF359rHfkdxsOP/xwV2aNIh+Xx9Z6NwWwz3Oqvbmo/2Xqyy5Y54/nXpI+nMc9JLMzk5SB229rujLXzX20NPL+OPB3PCf5uGyHuH88P1l7789DPi7PV+udCytkc1IYO+t9gZDM3vw598M/51a7Ms28HZrZ3dKlcxutc8DHeeKJJ2L7W+9ZpEJp5zJ1bRNSIUIZ65z45y7kPQJrnrNN51DPrGsHgJ49e7pyt27d0tbB65Ufgqz3hPz3nXh/fm9h48aNrvzuu++6cqdOnVyZw4Jy5mOepwBQXl7uyvzwxnp/Hl++l+J3JrjupHs8vi/j/vI9D7/nwGFL/fDQTMh7b0B7YAAAUppJREFUIPV9nQ2Zh0l2J2R7i6x6OmbMGPzjH//ArFmz0KVLF/d5eXk59u7dGztJwBex93kCCSGaHrILQghGNkGI3Cajh4AoijBmzBhMnz4dL7zwAnr06BH7fuDAgWjevDlmzpzpPqusrMTatWsxdOjQ2mmxECKnkF0QQjCyCUI0DjKSA40ePRoPPfQQnnjiCRx88MHObVVWVoaWLVuirKwMl1xyCa699lq0bdsWpaWluPLKKzF06NC0b/snUVVVhaqqKjObo+Uy9glx+/OvEVyfFYbQPy5/Z+2fTfgyK2QVS3J4HKxwnxx72XfxcRt5f3YLsgSAXaD8ORt5Px60dQ7YlWe5XC1JR2jGYCt0KI8Du2+tbYD4uPO54fBuVjvYJczSKT88oZWpNbVdNqHI6pr6tAsprHl/5JFHuvKbb74Z24fH2pLOWVmFQ7MzhoSf47meFEIzpD4r2zW3l+u2XPeh7m/e37JPITIffzsu87oLya6eFFrVCmNqSQJCbHaopIS347nH9sZqk48lcyssLMxJiWBD2ARr/JLGNWQeWBI4nnf8foI/HzgM5hFHHOHKbN/ZhnEWab5WsNzF7xPPD14bLLNduXKlKx911FFp9+WXrTnUKBC3rSxj43sFDj1qZUBnT48/d/lvbou1ZqywwUlyIEs+FyL/Dg0JnamsNOQ4oTLETLMHZ/QQMGXKFADAaaedFvt82rRpuPjiiwEAd911FwoLCzFy5Ejs2bMHw4cPx+9+97uMGiWEaDzILgghGNkEIRoHGT0EhDzdtGjRApMnT8bkyZOzbpQQovEguyCEYGQThGgcZB0dqK5p1qzZfm7lUPe15b7jzK78Bj67tvi47O7zZUlWBCKrvZaLPMl1w/tzG/nNfHb38efsnuQXslavXh2rg/vLLjRLLsOfd+/e3ZV5PP2wb5b7zUr2YkXrScq0m6n7LkQm4EeiYHejJQ/hKAjstufoETyGfiQlbhdHVUqd/1x0/TcELM0aMWJE2s8XLFgQ28eKxMNry5p7VuQe3y7w+bTcy/w52xhLXpMko+G1ydE4eJ5YWYWtCDv+PjxufNyQNWRFTgPsLNp8XK6b5RCW9MlfH1YmY96OP88mEz1j7cOfW5GXkuQIlpxo9+7diVGw8oEDZUsNiQaTtJ11jqzIUxyRBwDeeustV2bZD0fXY5kQzxW2ZyyzZSmtjxXB6MMPP3TlNWvWuPJhhx3mynyPxDIfIH7d4vXDbeR9eKz4Ws9rmiVDQDxSEWcs5jnP9ynpokUB8fViZV32sWwCk40cN0SmFjJHk6SjoXLVtPtmtLUQQgghhBCi0aOHACGEEEIIIfKMnJUDpWA3m58kJYXvurFkI+waYyxXTJL8xJKpWNtkk0SMt+N2cT/Yjc+SEz4WS4DY3QfE5URcH7vpWGbA9bF7kmUw7Lb362TZENfRuXNnV2Z3qpUMyccaK0vewWWeP5Y0JGn/733ve678yCOPuDL3j12YVoIgv8500axyMTpQfVJYWIhmzZrF3L2LFi1yZU6I47uBQ6LAWGvZsgt+ZBrr/FlRRSzpiyUN8tvLxwqJemG5vH0bakWjYUmcFdHLkk+wjQDi8gJL+siyhxBpoH/+uB88Z0JsNhMqE6pJVJGkpFZJyQ2zkS01JQ5kG0MjrFj7W1LAUKkqS29Y1nLiiSe6MsuEOJIcRxbi6wnbOSB+HWf4WszRfrZs2ZK2Dm5fnz59Ysdavny5K7MEiPvOkiNuL0coZLvB/fbr5/XKdo7LbDM5MpF1P+D/bUUl4/2tyEuWzfP3Z1tu7c8S6hB5OhA/59x3yYGEEEIIIYQQieghQAghhBBCiDwjZ+VAKTenlbSD3S+++8OSDXG0lUMOOcSV+c11KwJM0hvmIYnLQiRASS5gyyXPLjd20VmJRbZu3RrULiuhEbvv2HXHCdfYNQXEXfrcXq57w4YNrmxFz7EkPECYm9aSdFguYV+SwW46/u7BBx90ZXZPWhKCpHNuSQJS7ZXrP9rP3c7JZzgShx+5JySRnyWp8dtgERIlxzr/VjmpTZZc0tqGbQfPZ9/VzGPFZbbBloTHkij5EU2s9cRl7hOvLe5H0vhY7W3IiDpWVCVuU9L1xp9X+R4xLJ0kKpsoTyGRnUKO5c8tvhazNJfnwZAhQ1yZ7Rkn/bTkKkA8qg5Lb1gywvc83A++XvM2fH0HgI8//hjpYDlRaWlp2jbyfQMfh+9Z/GNxu1gCzfdxLFW2kpL6ST8teaQV+SnEbvjzwrqP5IhQhx9+uCtzXznCEttIX/LFkjCWnKX6Gyodzm/rIYQQQgghRB6ihwAhhBBCCCHyjJyVA6VgNwtLSSw3qr+PFamCXVK8P7ucreg+SdQkeovv4guJhsRRZ7p16+bK/Pb/kUce6cp+sjB2x7H7z3JPrVixwpV5fCoqKly5f//+sTqefvrptP2wpEhWVBVL8pPu7xQhsgrrnPnnw4pKYEks+NwkRTBhDhQNK9+jAzVv3hzFxcWxcXrppZdcmedwUrQtS+KSlJAlRVIUF8aKvmNFh7Lczr59s2yRNde5r1bkCd8tbyUe4zK72f1kY+nank1iNa6PZQB8LeB28Fr060xKxlXXWBIwy9b559ySslVXV+e9TajPyGlJUs4Uvg3h9cr3HUuXLnVlnsMnnHCCKx9zzDGuPHjwYFf21ytH7uG1wfITlvqwzeP2JdlC3p/XIkuAODEp94mvlxylyK+DIwl26NAh7XYcZYwjIlr3fdnA7bWSDPL59+WUvB0nVeUEaCz74vXN0i62D/45Z1hOnRqHKIqC7lvlCRBCCCGEECLP0EOAEEIIIYQQeUbOy4HYLcMuanZ5+W45fhOd3TT9+vVzZXZJ8dv07OayXOeALS0JiTQSEoXAr9OKdsDuInaNsSxi1apVZh0cuYD7biUk4vPB7eO6/QhE1113nSvffffdrszja9VtRffwz0dItB92uVkRhKzIJP6xeEys5EbHH3+8K/P4cDI0XyLBdaaTGeV7dKBUJBAeGx4zKxGX/x3D5y80+kMIllyA225FHgmNDmRFt7CSF/H6ZZKSnlkJ9Phzdv3zGuLP2WYDduIxSy7D+7NdYPyoOtY8SZIW1gVWNDvLXZ8U7UbJwuJUV1fvNwYhEbhCCUlClpRw0FqLfM3jJJqc/JDX5YABA1yZZSVAfF1zwi4+LstJ2M5xZD/GX0ssLeLjMv4aT1c3l335HveDZT+WBJrPAd/3saTGr4OxorkxVqSgJDkly6OPOuooV2a5lCV1tiTF/nliaRnfx2UqHZYnQAghhBBCiDxDDwFCCCGEEELkGTkrB4qiCFEUmVIUduP4rkBO/sUumzfeeMOV2cVjucv5c9/9bEmFrHZZrpmkbZIihKSwEofxm/Xr16935eOOOy62Pyfh4H6wXIplWAy/3c7H8ZMC3XXXXa5syQa4f9ab/UlJWyz3r5Vwjeu2ZEK+DCMkudHPf/5zV548ebIr8/gwfj94vlvu23xm3759aNasWexc8Nq0XKxJ34VIMmoz8oglT7Dmd02lSH7SnxS8Nnw5EO/D659d7iHrl8ec903axzofnCyH22etRf+4TH1LaKzoblaSNV/Kxvucc845rvyPf/wj76MDpWjIcUiyJyFyIpYk89zk+xGW5/C1F4hLdfg7LrOchNcF209eoyzHAeJRgPgaz/tzHTyf27Rpk7Zuf33yPOfjWjIq/pzbzv1meZTfdob7y9uwrbHGiiMwAkDXrl1dmaMq8T4sDeL7LZYO8z0ry4gBO8Jl6r4hiqKYnMhCngAhhBBCCCHyDD0ECCGEEEIIkWfoIUAIIYQQQog8I+ffCbD0dKyP87W/rI1nLRpr4y1NnJUd0w+XxXVa4eYsfXmodtHah9vOfWUNOWeQ43744TtZ78u6RNakssbRCgvKGYZ9LSHr0iwtb4guP0nHa20XEiKU4W380GKscbSyHd92221ptwlpHxCfZ/z+ROpYSeEi84FUSEQrLGiSlp51k1ZIv/rQFWeauTbp/ZcQO8QaWl5/1vwE7AzAvJZZr8x2iMPVsU3yQ9yxzeA2WuuU9bRWmFU/BKo1N5j6eD/ACnvK156kdvCYzJ4925WtkIz5RE3CpIasv5CM8tY6zOa4rGHn+cHlY489NrZP3759XZmvv2xr+F4oXUhJIG4fWMsOxNcfr12+jvN64/ZyfUlz3sr6y+uax43bwdtzll7f7qxduzZtuywbxJ/zcXv37u3K/j0PvxPA4UK5Pm4Xh3F/8803XXnlypWu7L+XymPNdiBlG+skROiUKVNw9NFHo7S0FKWlpRg6dCiefvpp9/1nn32G0aNHo127dmjdujVGjhwZu7EUQjQ9ZBeEEIxsghCNg4weArp06YLbb78dixYtwsKFC/HlL38ZI0aMwFtvvQUAuOaaa/Dkk0/ikUcewezZs7Fhwwacd955ddJwIURuILsghGBkE4RoHBRENfR/t23bFnfeeSe+9a1voX379njooYfwrW99CwDwzjvvoG/fvpgzZw5OOOGEtPvv2bMn5trdsWMHunbtiuuvvx4lJSVBkop27drFjrllyxZXZterFXqOsUJK+ljZJ7lstd3PKGhhyWKssHfcXt89lcIPj8UuPpYA8Bj64epSWC43Pxwmu7GstluESDgAWy5lhXll92JollhLxmHtz3OP62P3og+vBXbHpvb57LPPMHHiRGzfvj0Wsi3XqCu7cMstt6BFixaxOcnzLUlqZWWltUKM1pU0KFMJUJLUwQoxGiIltLJeA/H1ZcklrSy2bHtY0saue8CWKVkhP63sv4xv4y3ZaF2Ffw3BOh/cJh43ID7ufqjiPXv24I477shbm9CyZcusMwaHZBMOub5b2/tY847ngRU6l7Pg9u/fP3ZczibM27Ecr23btq7MsmAOvcvSlcMOOyxWBx+LpcAcqvKYY45xZWt8FixY4Mr+mPfs2dOVWW7DY8oZlbluhufJ6tWrY99VVla6Mstw+DrC1wEO5cljy2FZ/RChPNZW2PjXX3/dlV977bW07UsnCU7BdoDvL1L2Oooi7N69+4B2IesXg6uqqvDwww9j165dGDp0KBYtWoR9+/Zh2LBhbps+ffqgoqICc+bMMY8zceJElJWVuX+spRJCNC5kF4QQjGyCELlLxg8Bb775Jlq3bo2SkhJcfvnlmD59Ovr164dNmzahuLg49vIJ8MXT0qZNm8zjjRs3Dtu3b3f/1q1bl3EnhBANi+yCEIKRTRAi98k4OtCRRx6JxYsXY/v27fi///f/YtSoUbFoBZlSUlKyX0QH4H/f+A/J/uq7hKw3u9l9YrkBLVdeUqQRK/KD5TpMykqbVOeB9uF2HHrooa7M7j52ZwFx2Q+fB3ZDshufszGzmy2pTzwmlrzHkjtxOSmaiYWVDZrbERodxsoybUWR4jKPIUdk8i+Elqwi5ar0IwTkCvVlF1LuUcuVbkWc8r/j/dku1EdmZstNHpJZNAlLGmStG44okSSVtNobImXhz/3M41YWXcvOWxmfk6RTlm0PlWTWFpats8p+1B9e96effrorv/zyy/We/TiU+rIJKaxretL1PZvoXOmOFTqfrPosu8N18AOSL/fl63pZWZkrs5SF5aV8beJ7JJYL+1nEeR+WEVsvdFvZxdNJV1LwOFrSTB4TS+aSdH/A0kMeH7ZbvP6sCEtcty915O84G/Crr77qygsXLnTl9957L21beQx9GTGPaTpJa+h1I+OHgOLiYhxxxBEAgIEDB2LBggW4++678Z3vfAd79+7Ftm3bYgO1efPm/VJcCyGaFrILQghGNkGI3KfGP4dUV1djz549GDhwIJo3b46ZM2e67yorK7F27VoMHTq0ptUIIRoRsgtCCEY2QYjcIyNPwLhx43DWWWehoqICn3zyCR566CG8+OKLmDFjBsrKynDJJZfg2muvRdu2bVFaWoorr7wSQ4cONd/2TyIlBwqJcuG7fti1dvjhh7vymjVrXNmS5/htSGpfunKIZIRJkqJY7n1rG35bnV1Q7FLizwGgX79+rsyJgLp16+bK7KridrBbjZNgsDsSsKO3MJYEIDTCkiVn4Pp4Gyu6iHUu/X3YVcnbcQQFdi+yK5frYHmV/x0nfEu5YutDrpIp9WkXoihCdXU1jj76aPfZG2+84cpJkrGQaBz1QYiUpaYRayzbYa2HbOQMIZK6pCSJVp0h0girTUlRw+pbAsRYsibLJvljxfu/8MILse982UYuUN82AbDnWtIcDJEQWdHxGCvJFRB2PbOw7ID/7gT/zdcgjvBjJe1kaZHVViAuceF2sbyHo/JwhByuOylpJx+X62OZEreRZTss6+Rrry8Zsu4V+Lyx9ImjIPI544iI/nlavHixK3M0o7ffftuVOSmcZaNZAuSPlXUPm6k8MKOHgA8++ADf//73sXHjRpSVleHoo4/GjBkz8JWvfAUAcNddd6GwsBAjR47Enj17MHz4cPzud7/LqEFCiMaF7IIQgpFNEKJxkNFDwB//+MfE71u0aIHJkydj8uTJNWqUEKLxILsghGBkE4RoHGT8YnB9EUWR+5fCig7hJ7rhN745GUSSu7UuCEmMleSqtFw8lkvRl5akYDkOuwGBeGIKHkd2Q1lvx3NUJt6G3WR+exlL/mBFE2KSpDpWHSEJWfgte39esdud+8RlPgfW3OVIDuvXr4/VYUUaSrkwc1EOVJ+kZII8NiHSF8Be/yGyu9okRNqXTZusfbI5rrWPJfsJOQdJNrchz0d9wLaE7Yg1ViyrAGyZYevWres92VmuUV1dvV8kwZAkYKGESLaS7i3Y9luRzCwZjhXRzI8UwxF6Onfu7MocRrVHjx6uzHON5S5vvvmmK/sJ61j206FDB1fmKIEs2+F+c/QclguzTMjfjtcMH5fvYax7C74++MlkWR7EUigeU+4ft4PHlqMuPv/887E6eEw4KZjf3xQhkvRQeXqmNJxIUgghhBBCCNEg6CFACCGEEEKIPCNn5UAFBQUoLCw0o7Xwm+d+srC1a9fGjpPCispRV4S4IUMjVlguRXZhsfuOt2GXl+/is97A95NYpTsWS2dYcuRHU7CkN1akkRDXmC//sVzslms1JOpQUtIz7nuIy47d+ywB8vtxoPY2ZISTXMKKOJUUDYbH05pLoUno6oJQ2UKIxCakT0k2MGQfyxZwOUnuaB03V85HbcLr34oyxuPGtsbfnyOi7NmzZz/pkIiTzbU+ZI3x3OTIfH60Jv6bE+ZZa4nh6yIfx0+yxXIg3o6jAbIMla/vLMHhzzk6HQD07t077T7cd5bDWtdVzgXB9xyALcPh8eH5zxIly9b454/byOfgyCOPdGXuH19rOAoTS6c48iQALFiwwJW5jyEJZC38bbKJapkO3VEIIYQQQgiRZ+ghQAghhBBCiDwjZ+VAn3/+Ofbt2xdznbL7ZOvWrWk/B+IuF5YN8T71EVHBqsOSj/iub/7bktRY8hDel99I97fnMeHjssuMP2eXIu/Lbjkfdnmz65r3sSLp8PZJUg92n1uyLytJiRURyI/AwHXwsSxZEydp435w+3gbIC5t8yUB4n9lgieffLL7bOXKla7M8yIpwgq7zLNJmlUX1FSiaM3pkO39fvOa5+14TvL48hha6y/JTlvJnZoKLLNgeQGPYZI8wEryVlJS0iTHq6ZY196kZGHW51YiS45Sw9dCP4IbR8Ph8832yDqH1rXQnx8sM+IyR8bhqH0cEYjbyxGEOHIgEI+Gw21nORDLjS0b26lTJ1f2JUe8Tngfrs9P/pWCzxnX7Uug+Xzy/QyPCSfy4ro52iRHAHrnnXdidfAaD40iVRMUHUgIIYQQQggRjB4ChBBCCCGEyDNyVg5UXFyMkpKSmCSD3wpnd48fjeaQQw5xZSvZRn1gJbCy3L5J0UwseBtLomJFWEpqI7snWQKwYsUKV+bzwcdNGmfrHPLb/+xK48+5H5y0A4i75qyERlyfJalKShZmSRZ4f3YRs1uW5yS7jtkFCcSlW+lc0k0leVK2lJSUoKSkBP/617/cZ1ZEJV9O5UftSGElIawrajOxloUlfeP+hUbuCVlD1nEtWZH/d1NPeGVJMvk8Jdl7a87s3r1b0YEOQFKkmJCkYnxt4/PFn7OMxY94YyWI4nsbywZZycV8rIhARxxxhCt/+umnrrxlyxZX7tmzZ9r6unXrFquDr2d8neRrdNeuXV2Z5zlf93msDj/88FgdVsQx/pyvpSxRsqSg/vj36tUrbVs4ah+fW5YAsXyJ5VIckRKw17UllaxpgsSa7C9PgBBCCCGEEHmGHgKEEEIIIYTIM/QQIIQQQgghRJ6Rs+8EfPbZZ4iiKBaeydJu+7DWjvVunOGtPkIBWhq+pPcAmJAQo6x75vpYz856Qb8+a0wtzbyldeO2+uFCWYvIx7UyH7Ou3jrPvgbPGkdulxXik/V/lr7c/87SWfM2rKn0Q6Gl4HcsgHi4NQ4XmhpDS9eeL1RXV6O6uhrvvvuu+8zSQ/rvu1ghd3MlxGJt6uJ53YTYuqTM1db+1vtEXHdS6M+avhvRmLD6YWVX9t9nsWxP8+bN93vPK99o1qwZCgoKzPmUtL6t+Wm9K8Bjzfcm/B4ba84B4E9/+pMrX3LJJa68ePFiVw4JOc0krWkrezDD7wRwyE4eA86aC9hhwDnMNbeLQ3NyqHbeht8hAOJ957XB9xB8f8Db87sYXJ//bgO/L8Bjxf1dtmyZK7/22muuvGjRIld+4403YMH3Dmwn+XxaNi8bFCJUCCGEEEIIEYweAoQQQgghhMgzclYOVFJSghYtWpgZFZPczOx+YQlQfYcC9EOXpggJSwbYLh5rf66P5TUsDfL7zS473s5ySYZkV/UlPHxcK/Mx72NlyuXx8N2cVihCS3rF7kV2cybJKKz2jhkzxpWfeOIJV+bQZJyZkLMR+uHL2KXJ7UqVm4o8IlsKCgpQUFAQm1OW3Mx3pVtZQLlcH3YhRO6SjauY2x5ie5JkiSFjYoUFZZLqCJFiNJWQuNZ4hmR8B4B/+7d/c+WXXnrJlauqqoKyQzdlCgsLUVBQYI5r0nqz5pp1/bPOI2/DUhQAOProo12Zw0NbUueQzN9+P9jucR0sdzn00ENdma/7HFKUr1P+NZalqnyNtqRX1n0KZy5OWt9WaE0ea5YiHXnkka7M47Fu3brYcTlcKfdj6dKlrjxnzhxX5vDjb731litbkmLAnj8hdt3aJinEcsjnFvIECCGEEEIIkWfoIUAIIYQQQog8I2flQNXV1fu5WKyoOH7WuZUrV6Y9Zn1LKSw3EJPk+s5UDsT1We46H3aNWdGBQiKNJMkwGCsaUWjmzHT1AbbUIzSCUbp2+P2wzucDDzzgyqWlpa7M/WPZT1IUED4fLA1K9Tff5UCpqGFWtulsMoSHrNPaJGRdJ22fqZzIyubNc91f15bUh49rRfHic8N1J9mFph4diLH6Z9kwIC7F8LNBh9jLpkxVVdV+0YFCyj4hMlue52yrWbbsRwfizLIc1YznAV83GCtDd9K1ia8bHJWOsweznJKvTRUVFa7sS5F4THh/ziTMGXhZqmNdV33JEUcqsiSbPG4cXYivpRxZj9sExOVSLAHiiEDvvfeeK7/88suuHJLx12+vdS+VqRwodLt6lQPdfvvtKCgowNixY91nn332GUaPHo127dqhdevWGDlyZEyXJoRousgmCCF8ZBeEyE2yfghYsGABfv/738deegGAa665Bk8++SQeeeQRzJ49Gxs2bMB5551X44YKIXIb2QQhhI/sghC5S1ZyoJ07d+LCCy/EH/7wB/ziF79wn2/fvh1//OMf8dBDD+HLX/4yAGDatGno27cv5s6dixNOOCG4jlQUEHZtlJeXuzK7sPyES+ymZjddCOyeYsmIH60hxKXPLiErKo61b9KxLJdmSKQD380c4p6yIiKEuLX9v9ktyONQU7d/SPKukPFJgtvL8+TrX/+6Kz/88MNpt7ciofjng6M2pNs/V+UR9WETGHb9WhE0kmQ0IfO4ptEXMpUkWPYiac1abueQtifJoHh8LekVz1VLgsdtSrKhmcoPGxuWDbTkHt/5zndi+ydJHHPVJgD1bxcyJSSajTW+VsJBPzkVy5XvvfdeV161apUr33///WmPZa1XH8tuvfPOO2nbwZF0+LichLNHjx6xOiz5UocOHVzZmqd8T8YyIZYSAfFIb5ZEivd///33XZmjLbGd8hOLsiSLI/+wNOjFF190Zev8hyahC4kulY0MNSTZYghZWdjRo0fja1/7GoYNGxb7fNGiRdi3b1/s8z59+qCioiIWconZs2cPduzYEfsnhGhc1KZNAGQXhGgK6F5BiNwmY0/Aww8/jNdeew0LFizY77tNmzahuLh4vxcxOnbsiE2bNqU93sSJE3Hrrbdm2gwhRI5Q2zYBkF0QorGjewUhcp+MHgLWrVuHq6++Gs8991zszfiaMG7cOFx77bXu7x07dsTe+Gb3CT/5syvad9dwoizGin7DZXZb8XH8KC4hLljLXWO5IPmNe7+9IYlQrLpD3U5W9IFMJTX+WFmJPpJkSnWBJU2wkiz5si2ecxMmTHDln//852n3P+SQQ1yZE6RYEZL8OtNJCHItEkhd2ATAtgvV1dWorq6OrRUruY6/Rq11ECLbCpHg+X/zebaiY4RIkfw6QpIaWRGoLJmD79oOSdLISZE44RCfGz5Okl1gWQxvVx/J2+oDywZa8gCWRQDAU089lXafJIlIQ9IQ9wr1ER3Iug6zFOWxxx6LHZevGywV4vXD9xqWXDgJbiO3ne+ZOOJN9+7dXdm6FvI1C4jLfng7Pr+WnNVK9OnLgax1Yh2rrKzMlV9//XVX5uskS34AYM2aNa68cOFCV160aJErZzp/kqSnmcpzQq812R7HJ6M7r0WLFuGDDz7Acccdh6KiIhQVFWH27Nm45557UFRUhI4dO2Lv3r37TZ7NmzfH9PxMSUkJSktLY/+EEI2DurAJgOyCEI0Z3SsI0TjIyBNwxhln4M0334x99oMf/AB9+vTBDTfcgK5du6J58+aYOXMmRo4cCeCLGLlr167F0KFDa6/VQoicQDZBCOEjuyBE4yCjh4CDDz4Y/fv3j33WqlUrtGvXzn1+ySWX4Nprr0Xbtm1RWlqKK6+8EkOHDs34bf+qqipUVVXFXG7sRmrfvr0r+xGA+NeFQw891JU/+uijtHWx24TlBFYyHCDutrJcVZabzUoywq4tv70hx7WiTrB73Xc1WtIEdumzi4/byK48Hivf7c/94O9CIh7VJta4cZssSQUQH98bb7zRlXv27OnKHK2A+23JRHwZFJ+3dG7WTKNd1TX1aROAL+Zvs2bNgiQ1/ly3pBeWTDDE9eu7ei0ZAUca43WTTZQqS1pkSfK4f9wOKxIa8MVLmil4/XNkDU5ExG2ypERJWJKLpgKfDx5PHneeC37EO96fpSP1kdwuG+rTLqSiCFrrOxRrf5aWcGQaTjrFSba+8Y1vxI7LyUs5Ag0ft127dq7M9y+8RpPOdYhMdMmSJa7MCc3Y88LXfV6TQFzyxDaF7Rm3IyQhJx8TiJ8DK5Epy3l4LbH0ic/Nxo0bY3XMnz8/bZn3zzQhY23KgUJJknP63ydR6xmD77rrLhQWFmLkyJHYs2cPhg8fjt/97ne1XY0QopEgmyCE8JFdEKLhqfFDAMdTBb54eps8eTImT55c00MLIRohsglCCB/ZBSFyj1r3BNQWzZs3R3Fxccy9xC6PDz/80JU5QgAQj1TB23E4MnYXMey6Yber79qykulYbqAQd/n27dtjdYQk4LGkJexK433ZfQbE3XEckYJlP768JwX3id2kvgyDE7vVNEFGTbAkOSGRO4B4fy+77DJXti5iVnQYPh9+Hf369XPlyspKV67NyDuNmVR0IJ5vu3btcmUeZ1/CFyIbCkkWxiRFIPKTOqUjJKmXv2+I7MHqB9sqjl7lJwZiW8Rj2rdvX1c+//zzXXn8+PFpt2eSItnUZhKdXITtLttcPh/MW2+9Ffubx8eXLzaVMapNQhMAhqxLK2oTv5jMtubEE0+MHYvlTZ06dXJltmFnn322K/v3AQdqUxJs29gecQItlv7x2u3SpUvsWPw3S4C2bNniyjwmvN6tSD9JL3fzPjwmfE/HEh4OLcvb+CFqn3/+eVfm/tZEApQkBwohJMpjXdE00jEKIYQQQgghgtFDgBBCCCGEEHlGzsqBPv/8c+zbty8oggwnwQDi0h0rutDhhx/uyqtWrXJldsvwcfy373k7S5ITkvTBkh/59Ye4qtjlzG4ubhMnuQKAO+64w5U5wgEn2LCi6nCb2MXN4wnEIw5kk8SstghJFsZt9c85uy5/+9vfurKVvKd3796uvHz5clfmJDHsSvW3SxftyZe45BslJSVo0aJFTGJmSUl8WVpI9BzGcvcmJY+xtgtJVGita9/1b81dhuchz2kruZKfpZX3Z/kir/Nnn33WlY877jhXnjt3btq6/bbyOeA6rMRHjRm25Swp4c95zH0JppVgsKqqKucSCNY31dXVKCgoCE6E5++bbh/LVlhRxdgejRgxIlZH586dXdmKjMPXAT5uqATIugfhucHzi6/vLKnhOrhP/t8HH3xw2n6ERANLinjEbVy/fr0rc1QylgZxND7+nKP+sPzHr9OKohiShC9UDpRpYtn6Rp4AIYQQQggh8gw9BAghhBBCCJFn6CFACCGEEEKIPCNn3wlIZQG0tH2W1h+I6/1Z+8Y6r6985Suu/Pe//92VN2/enHZ7P+ydpWe3wj9aGYOtbJ5J9VuaOt6fs9haIT4B4Nxzz3VlDq3Kx+Ux4fNx2GGHuTJnuPSzAHJ7rZBl9YE1nnwO+L0K1jMD8bBolpaXw9CyjpH5+OOPXdk/N1ZYyVRbmmI21UzYu3cvCgoKYmNuZcHlcwHEx90ax0zfA/C1oP57COnqC9ErJ51nS69q2QLO3Mrjw2H0/NDB1rsKvB2HGeTQtpdffrkr//73v0/bPr8t1rs4TSX8pRWS1sp87V/TrBDBCh2c/l7B/z5F6Ds8jGWTQ+5NAPs6wHOe5wRfj0JDFlv2hffhaw2/l8LruHv37q7MoZeT6rDek7A09jye/jWW/27VqpUr83t0y5Ytc2V+T4Hfp+PMzP47X1a4Xeu9LYvQrMCh75PVhJrYSXkChBBCCCGEyDP0ECCEEEIIIUSekbNyoBQh7nnfpbRhwwZXZtcP7/+73/3OlTlzppVVNpsQoQy7lzgcHh+HPwfiriqu3wr/yW45zkzYrl07V160aFGsjiVLlrgyy3hYUsXZRJ977jlXXrdunSvzuB166KGxOrhfH330Udp96sPtH5KB2QrhBsTlQNxeDpfGLlRLtmGFKvXrT+eezHc5UAoO18rnhdeMn3nzu9/9ris/9thjrpypizZp+0zDAltzxJKPJB3LkiW+/vrrrjx48GBX3rZtmyv74YnZFW/ZHpYG8RrnY1mZ1YF4v/hYLGVqKvOd+8FjmGQLGEtGuWfPHjPrcL6QkgOFZNJOwtrfWossqUmCJVtcB+/fsmXLrNsKxO2IdW/E21hhrdlmsl0FgDVr1rgy218eK75XsO6Lku6XLNkQ94mvyxwenu0Z3wP69pPrsMKDh8yfUDmQtU9IiPSke6TQ7MUHQp4AIYQQQggh8gw9BAghhBBCCJFn5KwcKOXis9xySRk/u3Xr5srsWua3ytkly24vjmxxzz33uLIvDWH3t/VGvCU5sbIK+y5B3t/KhGpF0li5cqUrc6SgRx99NFYHZwu0ZDH8+Ve/+lVXfvXVV12ZI7Fwpj/AdmmFZEutTULcb3wufXdor169XJnHl+UPvD+fZ5ZXdOnSxZV5TvptDIlQkK9Y8pEkaQRHyeFz8F//9V+ubEkOrXnrY81ja82HSHt8l7m15kOio7AckLMH+7aH7R1H5uAIYlbUr+nTp6dtqz9u3C52xfP59GVKjZWQLK5J2VZ5vvtzIyRLa1MmNe9DpHhJ8r2Q9WNFc0q6fvmRt1LweeN5bmXMTooqZkWcsuwhr7fWrVun3YYzHQNx2StLqPleiOWwfM0LzXzMY8WRf7Zu3erKHOWNJUAchSlprHjcrahMNc1aHiLJqc3ruyV7D9q31lohhBBCCCGEaBToIUAIIYQQQog8I2flQClCZDC+O5TfGD/qqKPS7m8dl13ZSZEtLHlAiKveckH5EYis9oa4p/hYnETDdxWxW/CYY45xZZYDsPvt5ZdfdmWObhDq1g55Oz5km6SoAlaUBysiguUe5KhKQDw6AkdPev/9912Zx5PdmTxWb731liv7ycKsKA/57vJPkYoCYkWOSIq2cvPNN7vyrbfe6srjx4935ZtuusmVLQlPiKzM39+KAmTVkRRBKCRimrU/11dWVubKFRUVsTp4Hy537NjRlTkSCLvrOTJZku1huO0sKQiZ96HHtbazbIQlxUhqU0h9LJNgGUjSvLKOG0VRvUgpc5kDJRb1t7X+tvYPOaeh0iAmJOGohV+HJVOy9rHGh2Uw/rWJZYEs/+VkY7yPdR23kogBcWkSJy7jaD8s02VbwckPkyJFcR95rK2oZDWJvFNTkuZSiO0PQXcWQgghhBBC5Bl6CBBCCCGEECLPyHk5kBVVJ0kOxNKd1atXu/Kxxx7rypxAh99uHzp0qCs/+eSTruy7lNj9wi4tdnVZ7jfLdZdUR0iiNO7HWWed5crswmc5D2BH/mD5CicQ4bG1EuD40ikrCYcl70mXJMvfxk+sxtuFRErgaCi8DUsZ2L0IxCMXsMzBqo/nAidX4YhMlkzEP26K+nZH5hqlpaVo0aJFTH7ChCbZYtnPz372M1dmaRDLh0JkAEB8fifZqEzIRu5hyR25HRwpiF3vQHyOsmSFJUC8DScdtNZikn3jdrEtsdaTlZAsdH1YkgsrYpnVJn87C8s+hkSkAWxpakoKk89kEh0o5DiZ7FNb1GZ9IdIQno98LeSoP+3bt4/tw9GBrKRebBP43sJqR5Jd5DqsZIRcH9+zhEiqAPs+Lleoie0P3TejK9Mtt9zijE7qX58+fdz3n332GUaPHo127dqhdevWGDlyJDZv3pxJFUKIRobsghCCkU0QonGQ8c9TRx11FDZu3Oj+8S/L11xzDZ588kk88sgjmD17NjZs2IDzzjuvVhsshMg9ZBeEEIxsghC5T8ZyoKKiIpSXl+/3+fbt2/HHP/4RDz30EL785S8DAKZNm4a+ffti7ty5OOGEE7JqYMhb7L7rh+Un7CJatWqVK7Prh91WHB2I3WFbtmwx22jJe0IidLCb1+9rSMQb3zWc4k9/+pMrX3bZZa78i1/8IlbHa6+95spPPfWUKx955JGuzBIA/rWG62PZFb9lD4S5pdjd16JFC1dmaZAlgwLi84FlOzxu3C7L1bhp0yZX7tu3b6yON954w5WtCAfWvOSIBpbcyYfPc6oc6uasb+rLLnz88ccoKSmJzRE+35Y0C4i7vXnuTpw40ZWvvvpqV2bJEEuDkpLcWdFleF74yQ0PRJLcI0QKYkmURowY4crPPPNMbB9LwseSQU7Uw2Obbt4CyUnPuD4+n9a48TngtejLBK0Ek1yfJQOxIiQlRViz1qcV9cuSRCZdC2oSCaQ+qe97BYvQ6FGh+xzoOEmRneobq262n7zGLJkQEF9zLBHmOvz1d6B2+PC856iEfF3mex6OwGfV7dudkGg/dbWuMl272USdypSMPQErVqxA586d0bNnT1x44YUuPNSiRYuwb98+DBs2zG3bp08fVFRUYM6cOebx9uzZgx07dsT+CSEaF7ILQghGNkGI3Cejh4AhQ4bg/vvvxzPPPIMpU6Zg9erVOOWUU/DJJ59g06ZNKC4ujsWPBb54KZWf4nwmTpyIsrIy949T2Qshch/ZBSEEI5sgROMgIzkQR5w5+uijMWTIEHTr1g1/+9vf9nMdhTJu3Dhce+217u8dO3aga9euqK6uRnV1daLsJwVv42/HLiyO9mIlderVq5crr1y50pV9Vwy7rdi1ZrXDb2OKpEgRfrKOdFgRNs444wxX/j//5/+48kknnRTb/8UXX0xb39KlS135sMMOc2U20vx5t27dXHn9+vVme61oAFZUpZAEP0BcQmAlcuvfv78rDxgwwJX/8pe/uDKfMx4Dv41WUjjehuULlmzLx4qelDpuLkYwqE+7UFRUhKKioth4WjIKf/3wHGF4nO+++25XPv/88135zDPPdOVZs2a5cpJd4OOyq5ptQUgEMJ+QxGXWHPvqV7/qykOGDHFl/zyxLJLrYwnQhRde6MpsT//4xz+6clL0Dx4HHh9LbhUir0qS6liJGUOiC7GU0D833HZrO24HRzex5i5HEwPi8gtO5Lhr1668twmFhYX7RUmqafKuTNdlUmShTPevK3jNcFIuS1qXJN9jmbUVDYyxbJZfB3/HCcJYhsjb8Fpi+LihyUtrIhPK5vyF1BcqH6pJQrMa5Qlo06YNevfujZUrV6K8vBx79+6NXSSALzTk6XSBKUpKSlBaWhr7J4RovMguCCEY2QQhcpMaPQTs3LkT7777Ljp16oSBAweiefPmmDlzpvu+srISa9eujcXeF0I0bWQXhBCMbIIQuUlGcqCf/OQnOOecc9CtWzds2LABN998M5o1a4YLLrgAZWVluOSSS3Dttdeibdu2KC0txZVXXomhQ4fW2tv+lvvYj0bDsOuI3ajWm+QrVqxwZXYj+W4udsF+6UtfcuUFCxakbW+mCWX8trMr24pswe19/vnnXfmcc85x5cWLF8fqKCsrc2XLxccuQk6mxfKKjz76KG19APDEE0+kbS+TFBkjRZLLy9qfdaMc3eett95yZT6XPB4sEwPiY8L1s5uU51VIAqSk6DLpEsk1ZKQJi/q0C1EUIYqiINe/H4XHcgtb0br+/Oc/uzKfv8MPP9yVOSoWYCfHsqJJWcnNkly63F4rgphlK1kO+Nhjj7lyRUVFrA4rieBtt93mys8995wr86+ylt305Zz8nbU+LGmflXzRl4BZx2IJpyWnseR/11xzTWw7li389a9/TXusXbt2pT0uy9patWrlyiz/AWwJRFFRUU7KgerTJqTkQJZ0wrqeAPb1M2T7kM/976ztktqYKVYdPE848RffF/H1j+cjYNsnS97F9wd+ND8LtlUckdGKcMb3LBZJSQpDrqeZRvHxseZlbUYmqkk0o4weAt5//31ccMEF+Oijj9C+fXucfPLJmDt3rguledddd6GwsBAjR47Enj17MHz4cPzud7/LunFCiNxHdkEIwcgmCNE4yOgh4OGHH078vkWLFpg8eTImT55co0YJIRoPsgtCCEY2QYjGQY3eCRBCCCGEEEI0PjLOGFxfpEJ+WeE+Lb0mENeXsh7MyizKelbWVnEyEtZu+nWsW7fugO1KyjJqfW6FnuTPOast65N79+7tyvPmzXNlPyIDhwz85z//6cpWVmIruyBriDk9vN9eDiXKen1/nxTWWP3oRz+K/b1w4UJXfvPNN125Q4cOrszaXUtHy+fc1xJaOtOQ9xl4LiSF/bJCrKXOQabZZpsaKbtQkzCZ/nd8bnhesNaVy2vWrHHlPn36xI7LIXS3bt2a9rhWVmNLk+z3w+qXtT/Xd+utt7pyUqg+1gMPHDjQlefPn+/Kr7zyiitbWbOtYwJxnXzI+xDW2krK2GtlJbbCTVvvW3CIWN8m8bsVDPeDx8Syp6xv9t9zs9qbekdG2ISGC61JBtekOuoi66t/nExDmnKOBr634DVqrWMg/k4Nryue20n2Jd02QPw9gJ07d6bdn9dCSNjnpPctrHfwrPcG6jtDdzZho+s1RKgQQgghhBCi8aGHACGEEEIIIfKMnJUDpdycVoi5pMx2LJng76zQmux6ZXcU49fB+/M+PXv2dGUON8pYIe2SQlmxm45dYNzXn/70p67MkRaOOOIIV+YQn0A8vOmgQYPS1v2vf/3LlTksoBW+z5fa8LizTInDqfI54DBhLDNiHn300djfV199tSuzG5FlQlY4OHaNclhQX5oTkvWQyyGhwfyxsiRkVlbqfGPv3r0oKCiIhbWz5Dz++Tv00ENdmbOHW2E62bVtyV04q7i/D59nbi9/bm0fKhvgvvPcY/mSNVfZjvihg3msWKby+uuvu7K1Zq357YdltmQEVijQkKya/rhZYaGt8M0333yzK//617925RNPPNGV77zzzlgdbIO5vda1i+u2zrkVwtrfrqioqN4lCrlKyDjUplQnRBoUuk+m4Un9OkKyHbNN4Osqr+Ok6wzXwdvx/pYEzsIfcw41bl1v2aZY8tjQEMshMu0QajOsZ32vZ3kChBBCCCGEyDP0ECCEEEIIIUSekbNyoMLCQhQWFppu+KQsieziYdeP5XpnFxTDkWz8+t5//31XZlcVR9/hzKIcNYTbdNxxx7my/6b722+/7cqtW7d2ZXbVc4Sd+++/35XZXffee++58pw5c2J1zJo1y5XZXchRhzi9O7vXOcsouxf9TLs8PnwsbjtLeLp06eLKVrSOjRs3xurg47IMi88zH5fPnxURyHcP8ryy3IghkZ+siAT+37xPSk6Qi9lB65Pi4mIUFxeb8hNLSgLYGShZDsZzwYr6xNIOP2oLrwPO+srtZRmMFR0oyfVvScssmRHXZ0Uc4yy0QDxL8E033eTKnDGY+84ZSHkth0bpSMr6nsLKBm3JRIH4NYPtK0dF4+hpbKe5jttvv92VfakO99GaM9wutrNsK5MyzCdFTKrNbLONkVTEsNBtmRAZTzZZgrNpSybbJ0WuY7iNfO1mm8dSYyvzdyg8z0PkcL5kk+2WJWm0pEFMNlGgLClpiGynpnKgbLISW31MbRc6P+UJEEIIIYQQIs/QQ4AQQgghhBB5Rs7KgVLRgUJd5BZWtAZrG4aTAiVhSYtYfmC9Tc+SH9/NzK4xjtDBEYhYznPqqae68uzZs135lFNOcWVfRsMJjbjMibX69+/vysuWLXPlyspKVx4+fLgrv/POO7E6evXq5cpHHXWUK3NSr/bt26et25Ln+K7Kl156yZUttylLgJiQKD7+dhbZRKgIIXXcfI8Eks4uWJKapAga7JJm2Q7vw25ylrhY0YSAuBwwJHoWt8NKZsVufCBuJ7gtVtQxSybE+HXwdhwRjO0YH5elM7wNt4OTgwFxO8j94LotWROXLcmP/zfLDzmxIp+z++67L22fkiKdcBu573w+rLnE8PZJEjA/2lM2so2mRLoEgiGSOZ+QCDs1TRwVIh21IpRZMmcgPnd4bbCtYAkQy/dYaswSHB/rXsqyhyGRgvzoPrx++LjcJ66D5ZshbfIJiR4ZMpdCI0JZdYdIzkKThaXKkgMJIYQQQggh0qKHACGEEEIIIfKMnJUDNQXY3cPuN468cdhhh7myn6iMv2Pmzp3ryuxmW7VqlSuz645lN0ltZNkPJ1NiuQS7Hbl9HHXIlzVxgiF2z7P7jd16LBliaRC7CtevXx+r40BvyoumQTo5EK8BS/IDxOcey1SshFsswePPy8rKXJnnLWBHqwhJhsXwGvIjEHFbrOQ+PO95/XK/rWhpQHxtsoyOx9RK0hYarcaKpGP1jz+3kgRxu4F4H9mmsWzTklFZEi5/rFhCwfVzxCWOAmTJwZhQ17+iA6WPDhQqo/CPc6DPs5Fy1iSKkCVv9O1MiJyEZT8s/7Pmr0+m45PNNTlJupPCsjuWhCfpmNlE5cmUTKNLZTNfazJH5QkQQgghhBAiz9BDgBBCCCGEEHmG5EB1CLtpP/7447TbWDIBAFi3bp0rcyQNK+rEu+++68ocQYiP47sR2Y3ELmt2F/JxGZYJsNvSjzDgJ/BJwdEKWCLF8iV2bSUl02EkAWq6pKKhWAmirKhBQHwNsVTDcoFbUV84ipYvxeA5ykn9WFrEUXJY1mJF1vDnuhUNhiVEVsQkKxqGf0weX06gZUmnLKkCj6Eva/Jlg+ng8bEifljRVABbmsTSMO4Ht8mSgPn2he0mn2crmooV6YfLfh1JkWHy3d4VFhaioKAgMdFjCDVJ/hR6PbK2s9a0NW982xaS3IrtEScFY6kyX7uTEtaFRM/JJpqeldiQzy2vcWvNJK0Xq/6k6IN1QaZzNNOEeIoOJIQQQgghhEiLHgKEEEIIIYTIMyQHqics9zzLYPxIEVbSD96O3c/8eZcuXVx57dq1ruxLc9hlxElsrCgrAwYMcGVOslNeXu7K8+fPj9Vx2mmnufLzzz/vyhwNyXLfcTvYhc/SDsB2HTI1idIgcoNUdCCek1aEiCQst7OVdMeK6OLXx9txNBqG62P3O0vw2OXty2asqEUMS294rVgSHH/NcD+s6BrWNlYCM78ObqMl9WE5kCWJZLvgtzUkURqfAx4f3t5KFuf3g+eGNU9CkgdlEu1Gdm3/CEG1GdElm0hD1rEsMk1+6K97nmtW39u2bevKLCPmqEFWsi7/uCHzORsZFK9xK5mWZe8t2aNfR10lgrPI9Fg1rbvO5UDr16/HRRddhHbt2qFly5YYMGAAFi5c6L6Pogg33XQTOnXqhJYtW2LYsGFYsWJFptUIIRoJsglCCB/ZBSFyn4weArZu3YqTTjoJzZs3x9NPP423334bv/nNb3DIIYe4be644w7cc889mDp1KubNm4dWrVph+PDh+6VzF0I0fmQThBA+sgtCNA4ykgP96le/QteuXTFt2jT3WY8ePVw5iiJMmjQJN954I0aMGAEA+NOf/oSOHTvi8ccfx3e/+91aanbjw3KXW4mO/O1Cokuw24uTd/HnvoyGDa4lz2G3+GuvvZa27jVr1qRtHxCXAIW47yz3OkuZrKRMSeR7FI26oL5tQrpkYZ07d3ZljmTjS0N4XllzjOE6eJ1Ya87/24pgZEn7OGpQ0vy2EqVZSX/4uFb7fCyJVEiELuvzJKmO5eLnfvD+LGFg/ORtLCeypA6WvMqyzb6dtmwz123ZulAJgpWsrLi4OCeThTXEvYIllwlNvFbT5E3p2uH/bdVnSZmsOeHbrJDEdvwAxvcBHB2I7VR9yMySEu9xH63+MZakOOl8JG1XE0IkUrlCRp6Av//97xg0aBC+/e1vo0OHDjj22GPxhz/8wX2/evVqbNq0CcOGDXOflZWVYciQIbGbUmbPnj3YsWNH7J8QonFQFzYBkF0QojGjewUhGgcZPQSsWrUKU6ZMQa9evTBjxgxcccUVuOqqq/DAAw8A+N9f4Tp27Bjbr2PHjrFf6JiJEyeirKzM/evatWs2/RBCNAB1YRMA2QUhGjO6VxCicZDRQ0B1dTWOO+44TJgwAcceeywuvfRS/OhHP8LUqVOzbsC4ceOwfft2948TWwkhcpu6sAmA7IIQjRndKwjROMjonYBOnTqhX79+sc/69u2LRx99FMD/honcvHkzOnXq5LbZvHkzjjnmmLTHLCkp2U+n3lQICfvFulxfM2u9E8CaYtbwWRpbK+QeENf783mwNNNWm6yMfoCdkZWPxfVxtmNLu+iHIeUx5TGxwgKK2qEubAJg24V0GYM5zC7PQ9aAA3Z23hAtMGtVQ+cUz3t+p4CPZWXX5X4k2Ud/Paerz8qOnKT5tUKPWllZk0LypUgKexmSdZTP+fbt29Nu79tQ/jskJClvk3RcxtLkh7w/YdnppKzAfrbkpLY1FA1xr1CTUJVJ34W8X5BNeNJMQ1Vac9aH5xSPF4cIZdvI11UrPLdPSEbdTN9/8NvF13EuW1mCuU0hGZT97biNNX3PpjbD1VrU1jsbGXkCTjrpJFRWVsY+W758Obp16wbgixd/ysvLMXPmTPf9jh07MG/ePAwdOrQWmiuEyCVkE4QQPrILQjQOMvIEXHPNNTjxxBMxYcIEnH/++Zg/fz7uu+8+3HfffQC+eOIZO3YsfvGLX6BXr17o0aMHfv7zn6Nz584499xz66L9QogGRDZBCOEjuyBE4yCjh4Djjz8e06dPx7hx4zB+/Hj06NEDkyZNwoUXXui2uf7667Fr1y5ceuml2LZtG04++WQ888wz+7nm8wHLlceupqSwl7w/S4AsaQLX0aFDB1feunWrKx9++OGxOo444ghXXrJkiSv37t3bld977z1X5uzDVqhDPysxu+lYvsD94/3ffffdtPv6bnCG/+aQf6HyB5Ed9W0TUiFCGUtqx6Ex/e94vrAcYf369a5shXjkOcVSG8CWgPA+vGZ5DfjrJt1x/L8tu2JJAiy3fFJIUt6fx8Sq25IK+P2w9rFc6ZacKykrsHXOQ6QKIdv7dTCWdMrK7mpJGv3t+Lh79uzJScljfdqFlESwpiE+ayInqq0sr4A9t5OyeFthQdu0aePK7du3d2UeYyvcbjayJgvrWP6+vDYsmxCyXpPkQCFheUPXfqaEStMyPVZNyOghAAC+/vWv4+tf/7r5fUFBAcaPH4/x48fXqGFCiMaBbIIQwkd2QYjcJ6N3AoQQQgghhBCNn4w9ASIc6y12iyQ3M7vvLBkO7//RRx+5MrsKly9fHquDX97iNr7//vuuzP2wXNlJfWU3vpWF03LRWdEKkrIrs3whF7NpiuxJyYEsGV2Sy5xhCQXPdUuewxI8lhklRSDiuW5JWaz5aUXF8Y9rRc2wMmzyNixR8iUtvI8li7KkCqF2z/rOkgmFZPf0M6nyOFqyMcuO1dR2WDIh6/xbWZP97yz7mK8UFBQkSj6ykQOFyE9CjhNavxX5JzQ6kCU3Kysrc2WOAsTXSEt+lY3cJNN9/LHJVHplZfhOiugUIqcMOQdJc6wuIgLVVZQhWRAhhBBCCCHyjJzzBKSeqPjX7qZASAxi/+U862mUf5mzfj0KfaEoJCYxPyHzr5LWL37+EyvXb8XqDmlvUhzfkJeImgKpddHU+nUgfLtgzUPr1xwfKz9HyMuBbJv8X2L5uNa8t34Jtn7V9T0B1ku81nqyxsfyxPnfMSEvwTJJv16F2B7LExj6C7j1a521v+UtsI4JhM0Zhs+nZQ+TPDP+L6H5bhNS88K6PmSTGyDTbbLZvyafJ3nCLe8XBzFgb+aOHTvS1hdKpp4Sxu8H21ZuI+c9sYIThMb5DxnfTLfJZo7U9XpNHf9A9RREOWY53n//faUDF+IArFu3Dl26dGnoZtQbsgtCJCObIITwOZBdyLmHgOrqamzYsAFRFKGiogLr1q1DaWlpQzer3tixYwe6du2qfucRmfQ9iiJ88skn6Ny5c17pgaurq1FZWYl+/fppjuRR39Vv2QQL3StobeRTv4G6sQs5JwcqLCxEly5dnIuqtLQ07040oH7nI6F955e98oXCwkIcdthhADRH8rHv6ncy+WoTdK+gfucjtWkX8udnAyGEEEIIIQQAPQQIIYQQQgiRd+TsQ0BJSQluvvnmWDzbfED9zq9+A/nd90zI53HK176r3/nV72zI17FSv/Or30Dd9D3nXgwWQgghhBBC1C056wkQQgghhBBC1A16CBBCCCGEECLP0EOAEEIIIYQQeYYeAoQQQgghhMgzcvIhYPLkyejevTtatGiBIUOGYP78+Q3dpFpl4sSJOP7443HwwQejQ4cOOPfcc1FZWRnb5rPPPsPo0aPRrl07tG7dGiNHjsTmzZsbqMV1w+23346CggKMHTvWfdaU+71+/XpcdNFFaNeuHVq2bIkBAwZg4cKF7vsoinDTTTehU6dOaNmyJYYNG4YVK1Y0YItzC9mFpr0+UuSTXZBNqBmyCU13bTD5ZBOAerYLUY7x8MMPR8XFxdF///d/R2+99Vb0ox/9KGrTpk20efPmhm5arTF8+PBo2rRp0dKlS6PFixdHZ599dlRRURHt3LnTbXP55ZdHXbt2jWbOnBktXLgwOuGEE6ITTzyxAVtdu8yfPz/q3r17dPTRR0dXX321+7yp9vvjjz+OunXrFl188cXRvHnzolWrVkUzZsyIVq5c6ba5/fbbo7Kysujxxx+PlixZEn3jG9+IevToEe3evbsBW54byC58QVNdHynyyS7IJtQM2YQvaIprg8knmxBF9W8Xcu4hYPDgwdHo0aPd31VVVVHnzp2jiRMnNmCr6pYPPvggAhDNnj07iqIo2rZtW9S8efPokUcecdssW7YsAhDNmTOnoZpZa3zyySdRr169oueeey469dRT3cJuyv2+4YYbopNPPtn8vrq6OiovL4/uvPNO99m2bduikpKS6C9/+Ut9NDGnkV1o2usjivLPLsgm1AzZhKa7NlLkm02Iovq3CzklB9q7dy8WLVqEYcOGuc8KCwsxbNgwzJkzpwFbVrds374dANC2bVsAwKJFi7Bv377YOPTp0wcVFRVNYhxGjx6Nr33ta7H+AU2733//+98xaNAgfPvb30aHDh1w7LHH4g9/+IP7fvXq1di0aVOs72VlZRgyZEij73tNkV2QXWiK/ZZNyB7ZBNmEptrv+rYLOfUQsGXLFlRVVaFjx46xzzt27IhNmzY1UKvqlurqaowdOxYnnXQS+vfvDwDYtGkTiouL0aZNm9i2TWEcHn74Ybz22muYOHHift815X6vWrUKU6ZMQa9evTBjxgxcccUVuOqqq/DAAw8AgOtfPs39UGQXZBeaYr9lE7JHNkE2oan2u77tQlHNmyxqwujRo7F06VK8/PLLDd2UOmfdunW4+uqr8dxzz6FFixYN3Zx6pbq6GoMGDcKECRMAAMceeyyWLl2KqVOnYtSoUQ3cOpFryC40fWQTRCbIJuQH9W0XcsoTcOihh6JZs2b7veG9efNmlJeXN1Cr6o4xY8bgH//4B2bNmoUuXbq4z8vLy7F3715s27Yttn1jH4dFixbhgw8+wHHHHYeioiIUFRVh9uzZuOeee1BUVISOHTs2yX4DQKdOndCvX7/YZ3379sXatWsBwPUvX+Z+JsgufIHswrbYfo2937IJ2SOb8AWyCdti+zX2fgP1bxdy6iGguLgYAwcOxMyZM91n1dXVmDlzJoYOHdqALatdoijCmDFjMH36dLzwwgvo0aNH7PuBAweiefPmsXGorKzE2rVrG/U4nHHGGXjzzTexePFi92/QoEG48MILXbkp9hsATjrppP1Cuy1fvhzdunUDAPTo0QPl5eWxvu/YsQPz5s1r9H2vKbILXyC70LT6LZuQPbIJXyCb0LT6DTSAXcj83eW65eGHH45KSkqi+++/P3r77bejSy+9NGrTpk20adOmhm5arXHFFVdEZWVl0Ysvvhht3LjR/fv000/dNpdffnlUUVERvfDCC9HChQujoUOHRkOHDm3AVtcN/MZ/FDXdfs+fPz8qKiqKfvnLX0YrVqyIHnzwweiggw6K/vznP7ttbr/99qhNmzbRE088Eb3xxhvRiBEjFA7w/yG78AVNdX345INdkE2oGbIJX9AU10Y68sEmRFH924WcewiIoii69957o4qKiqi4uDgaPHhwNHfu3IZuUq0CIO2/adOmuW12794d/fjHP44OOeSQ6KCDDoq++c1vRhs3bmy4RtcR/sJuyv1+8skno/79+0clJSVRnz59ovvuuy/2fXV1dfTzn/886tixY1RSUhKdccYZUWVlZQO1NveQXWja64PJF7sgm1AzZBOa7trwyRebEEX1axcKoiiKMvcfCCGEEEIIIRorOfVOgBBCCCGEEKLu0UOAEEIIIYQQeYYeAoQQQgghhMgz9BAghBBCCCFEnqGHACGEEEIIIfIMPQQIIYQQQgiRZ+ghQAghhBBCiDxDDwFCCCGEEELkGXoIaMIUFBTg8ccfb+hmCCFyBNkEIUQuItvUMOghoBGzadMmXHnllejZsydKSkrQtWtXnHPOOZg5c2a91H/xxRfj3HPPTfvdrFmzcPbZZ6Ndu3Y46KCD0K9fP1x33XVYv349Lr74YhQUFJj/unfvXi/tF6KpIZsghMgGa+2++OKLKCgowLZt2+q9TaLu0UNAI2XNmjUYOHAgXnjhBdx5551488038cwzz+D000/H6NGjG7Rtv//97zFs2DCUl5fj0Ucfxdtvv42pU6di+/bt+M1vfoO7774bGzdudP8AYNq0ae7vBQsWNGj7hWiMyCYIIYTIiEg0Ss4666zosMMOi3bu3Lnfd1u3bo2iKIoARH/4wx+ic889N2rZsmV0xBFHRE888URs2zfffDP66le/GrVq1Srq0KFDdNFFF0Uffvih+/6RRx6J+vfvH7Vo0SJq27ZtdMYZZ0Q7d+6Mbr755ghA7N+sWbOidevWRcXFxdHYsWPTtjvVNgZANH369KzHQgghmyCEyJ5Ro0ZFI0aM2O/zWbNmRQCirVu3Rlu2bIm++93vRp07d45atmwZ9e/fP3rooYdi25966qnRlVdeGf3Hf/xHdMghh0QdO3aMbr755tg2y5cvj0455ZSopKQk6tu3b/Tss89qzTcQ8gQ0Qj7++GM888wzGD16NFq1arXf923atHHlW2+9Feeffz7eeOMNnH322bjwwgvx8ccfAwC2bduGL3/5yzj22GOxcOFCPPPMM9i8eTPOP/98AMDGjRtxwQUX4P/7//4/LFu2DC+++CLOO+88RFGEn/zkJzj//PPx1a9+1f1ad+KJJ+KRRx7B3r17cf3116dtO7dNCFE7yCYIIeqazz77DAMHDsRTTz2FpUuX4tJLL8X3vvc9zJ8/P7bdAw88gFatWmHevHm44447MH78eDz33HMAgOrqapx33nkoLi7GvHnzMHXqVNxwww0N0R0ByBPQGJk3b14EIHrssccStwMQ3Xjjje7vnTt3RgCip59+OoqiKLrtttuiM888M7bPunXrIgBRZWVltGjRoghAtGbNmrTHT/fLwRVXXBGVlpZm1B/oFwAhaoRsghCiJowaNSpq1qxZ1KpVq9i/Fi1aOE9AOr72ta9F1113nfv71FNPjU4++eTYNscff3x0ww03RFEURTNmzIiKioqi9evXu++ffvpprfkGoqghHjxEzYiiKHjbo48+2pVbtWqF0tJSfPDBBwCAJUuWYNasWWjduvV++7377rs488wzccYZZ2DAgAEYPnw4zjzzTHzrW9/CIYcckti2goKCDHojhKgpsglCiJpy+umnY8qUKbHP5s2bh4suuggAUFVVhQkTJuBvf/sb1q9fj71792LPnj046KCDYvuwjQGATp06ORuzbNkydO3aFZ07d3bfDx06tC66IwLQQ0AjpFevXigoKMA777xzwG2bN28e+7ugoADV1dUAgJ07d+Kcc87Br371q/3269SpE5o1a4bnnnsOr776Kp599lnce++9+NnPfoZ58+ahR48eaevr3bs3tm/fjo0bN6JTp05Z9E4IkSmyCUKImtKqVSscccQRsc/ef/99V77zzjtx9913Y9KkSRgwYABatWqFsWPHYu/evbF9kmyMyC30TkAjpG3bthg+fDgmT56MXbt27fd9aCiv4447Dm+99Ra6d++OI444IvYvpSsuKCjASSedhFtvvRWvv/46iouLMX36dABAcXExqqqqYsf81re+heLiYtxxxx1p61SYMSFqH9kEIURd88orr2DEiBG46KKL8KUvfQk9e/bE8uXLMzpG3759sW7dOhcFDADmzp1b200VgeghoJEyefJkVFVVYfDgwXj00UexYsUKLFu2DPfcc0+wa2306NH4+OOPccEFF2DBggV49913MWPGDPzgBz9AVVUV5s2bhwkTJmDhwoVYu3YtHnvsMXz44Yfo27cvAKB79+544403UFlZiS1btmDfvn3o2rUr7rrrLtx999245JJLMHv2bLz33nt45ZVXcNlll+G2226ry2ERIm+RTRBC1CW9evVynsBly5bhsssuw+bNmzM6xrBhw9C7d2+MGjUKS5YswUsvvYSf/exnddRicSD0ENBI6dmzJ1577TWcfvrpuO6669C/f3985StfwcyZM/fT9Fl07twZr7zyCqqqqnDmmWdiwIABGDt2LNq0aYPCwkKUlpbiX//6F84++2z07t0bN954I37zm9/grLPOAgD86Ec/wpFHHolBgwahffv2eOWVVwAAP/7xj/Hss89i/fr1+OY3v4k+ffrghz/8IUpLS/GTn/ykzsZEiHxGNkEIUZfceOONOO644zB8+HCcdtppKC8vN5MDWhQWFmL69OnYvXs3Bg8ejB/+8If45S9/WTcNFgekIMrkjTIhhBBCCCFEo0eeACGEEEIIIfIMPQQIIYQQQgiRZ+ghQAghhBBCiDxDDwFCCCGEEELkGXoIEEIIIYQQIs/QQ4AQQgghhBB5hh4ChBBCCCGEyDP0ECCEEEIIIUSeoYcAIYQQQggh8gw9BAghhBBCCJFn6CFACCGEEEKIPOP/B6tZCeFhIyKsAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x800 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(3, 3, figsize=(8, 8))\n",
    "for i, k in enumerate(np.random.randint(num_total, size=9)):\n",
    "    im = PIL.Image.open(image_files_list[k])\n",
    "    arr = np.array(im)\n",
    "    plt.subplot(3, 3, i + 1)\n",
    "    plt.xlabel(class_names[image_class[k]])\n",
    "    plt.imshow(arr, cmap=\"gray\", vmin=0, vmax=255)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prepare training, validation and test data lists\n",
    "\n",
    "Randomly select 10% of the dataset as validation and 10% as test."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training count: 47164, Validation count: 5895, Test count: 5895\n"
     ]
    }
   ],
   "source": [
    "val_frac = 0.1\n",
    "test_frac = 0.1\n",
    "length = len(image_files_list)\n",
    "indices = np.arange(length)\n",
    "np.random.shuffle(indices)\n",
    "\n",
    "test_split = int(test_frac * length)\n",
    "val_split = int(val_frac * length) + test_split\n",
    "test_indices = indices[:test_split]\n",
    "val_indices = indices[test_split:val_split]\n",
    "train_indices = indices[val_split:]\n",
    "\n",
    "train_x = [image_files_list[i] for i in train_indices]\n",
    "train_y = [image_class[i] for i in train_indices]\n",
    "val_x = [image_files_list[i] for i in val_indices]\n",
    "val_y = [image_class[i] for i in val_indices]\n",
    "test_x = [image_files_list[i] for i in test_indices]\n",
    "test_y = [image_class[i] for i in test_indices]\n",
    "\n",
    "print(f\"Training count: {len(train_x)}, Validation count: \" f\"{len(val_x)}, Test count: {len(test_x)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define MONAI transforms, Dataset and Dataloader to pre-process data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_transforms = Compose(\n",
    "    [\n",
    "        LoadImage(image_only=True),\n",
    "        EnsureChannelFirst(),\n",
    "        ScaleIntensity(),\n",
    "        RandRotate(range_x=np.pi / 12, prob=0.5, keep_size=True),\n",
    "        RandFlip(spatial_axis=0, prob=0.5),\n",
    "        RandZoom(min_zoom=0.9, max_zoom=1.1, prob=0.5),\n",
    "    ]\n",
    ")\n",
    "\n",
    "val_transforms = Compose([LoadImage(image_only=True), EnsureChannelFirst(), ScaleIntensity()])\n",
    "\n",
    "y_pred_trans = Compose([Activations(softmax=True)])\n",
    "y_trans = Compose([AsDiscrete(to_onehot=num_class)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MedNISTDataset(torch.utils.data.Dataset):\n",
    "    def __init__(self, image_files, labels, transforms):\n",
    "        self.image_files = image_files\n",
    "        self.labels = labels\n",
    "        self.transforms = transforms\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.image_files)\n",
    "\n",
    "    def __getitem__(self, index):\n",
    "        return self.transforms(self.image_files[index]), self.labels[index]\n",
    "\n",
    "\n",
    "train_ds = MedNISTDataset(train_x, train_y, train_transforms)\n",
    "train_loader = DataLoader(train_ds, batch_size=300, shuffle=True, num_workers=10)\n",
    "\n",
    "val_ds = MedNISTDataset(val_x, val_y, val_transforms)\n",
    "val_loader = DataLoader(val_ds, batch_size=300, num_workers=10)\n",
    "\n",
    "test_ds = MedNISTDataset(test_x, test_y, val_transforms)\n",
    "test_loader = DataLoader(test_ds, batch_size=300, num_workers=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define network and optimizer\n",
    "\n",
    "1. Set learning rate for how much the model is updated per batch.\n",
    "1. Set total epoch number, as we have shuffle and random transforms, so the training data of every epoch is different.  \n",
    "And as this is just a get start tutorial, let's just train 4 epochs.  \n",
    "If train 10 epochs, the model can achieve 100% accuracy on test dataset. \n",
    "1. Use DenseNet from MONAI and move to GPU device, this DenseNet can support both 2D and 3D classification tasks.\n",
    "1. Use Adam optimizer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model = DenseNet121(spatial_dims=2, in_channels=1, out_channels=num_class).to(device)\n",
    "loss_function = torch.nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-5)\n",
    "max_epochs = 4\n",
    "val_interval = 1\n",
    "auc_metric = ROCAUCMetric()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model training\n",
    "\n",
    "Execute a typical PyTorch training that run epoch loop and step loop, and do validation after every epoch.  \n",
    "Will save the model weights to file if got best validation accuracy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "----------\n",
      "epoch 1/4\n"
     ]
    },
    {
     "ename": "OutOfMemoryError",
     "evalue": "CUDA out of memory. Tried to allocate 20.00 MiB. GPU ",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mOutOfMemoryError\u001b[0m                          Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[16], line 17\u001b[0m\n\u001b[1;32m     15\u001b[0m inputs, labels \u001b[38;5;241m=\u001b[39m batch_data[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mto(device), batch_data[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mto(device)\n\u001b[1;32m     16\u001b[0m optimizer\u001b[38;5;241m.\u001b[39mzero_grad()\n\u001b[0;32m---> 17\u001b[0m outputs \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43minputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     18\u001b[0m loss \u001b[38;5;241m=\u001b[39m loss_function(outputs, labels)\n\u001b[1;32m     19\u001b[0m loss\u001b[38;5;241m.\u001b[39mbackward()\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/monai/networks/nets/densenet.py:254\u001b[0m, in \u001b[0;36mDenseNet.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m    253\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: torch\u001b[38;5;241m.\u001b[39mTensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch\u001b[38;5;241m.\u001b[39mTensor:\n\u001b[0;32m--> 254\u001b[0m     x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    255\u001b[0m     x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mclass_layers(x)\n\u001b[1;32m    256\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m x\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/container.py:217\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m    215\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m    216\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 217\u001b[0m         \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m    218\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/container.py:217\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m    215\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m    216\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 217\u001b[0m         \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m    218\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/monai/networks/nets/densenet.py:87\u001b[0m, in \u001b[0;36m_DenseLayer.forward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m     86\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: torch\u001b[38;5;241m.\u001b[39mTensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m torch\u001b[38;5;241m.\u001b[39mTensor:\n\u001b[0;32m---> 87\u001b[0m     new_features \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlayers\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     88\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mcat([x, new_features], \u001b[38;5;241m1\u001b[39m)\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/container.py:217\u001b[0m, in \u001b[0;36mSequential.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m    215\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m):\n\u001b[1;32m    216\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[0;32m--> 217\u001b[0m         \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mmodule\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m    218\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28minput\u001b[39m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1532\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1530\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)  \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m   1531\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1532\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/module.py:1541\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1536\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[1;32m   1537\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[1;32m   1538\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[1;32m   1539\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[1;32m   1540\u001b[0m         \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[0;32m-> 1541\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1543\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m   1544\u001b[0m     result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/modules/batchnorm.py:175\u001b[0m, in \u001b[0;36m_BatchNorm.forward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m    168\u001b[0m     bn_training \u001b[38;5;241m=\u001b[39m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrunning_mean \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;129;01mand\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrunning_var \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m    170\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m    171\u001b[0m \u001b[38;5;124;03mBuffers are only updated if they are to be tracked and we are in training mode. Thus they only need to be\u001b[39;00m\n\u001b[1;32m    172\u001b[0m \u001b[38;5;124;03mpassed when the update should occur (i.e. in training mode when they are tracked), or when buffer stats are\u001b[39;00m\n\u001b[1;32m    173\u001b[0m \u001b[38;5;124;03mused for normalization (i.e. in eval mode when buffers are not None).\u001b[39;00m\n\u001b[1;32m    174\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 175\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch_norm\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    176\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m    177\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;66;43;03m# If buffers are not to be tracked, ensure that they won't be updated\u001b[39;49;00m\n\u001b[1;32m    178\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrunning_mean\u001b[49m\n\u001b[1;32m    179\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrack_running_stats\u001b[49m\n\u001b[1;32m    180\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m    181\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrunning_var\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrack_running_stats\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m    182\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    183\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    184\u001b[0m \u001b[43m    \u001b[49m\u001b[43mbn_training\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    185\u001b[0m \u001b[43m    \u001b[49m\u001b[43mexponential_average_factor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    186\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    187\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/functional.py:2494\u001b[0m, in \u001b[0;36mbatch_norm\u001b[0;34m(input, running_mean, running_var, weight, bias, training, momentum, eps)\u001b[0m\n\u001b[1;32m   2488\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Apply Batch Normalization for each channel across a batch of data.\u001b[39;00m\n\u001b[1;32m   2489\u001b[0m \n\u001b[1;32m   2490\u001b[0m \u001b[38;5;124;03mSee :class:`~torch.nn.BatchNorm1d`, :class:`~torch.nn.BatchNorm2d`,\u001b[39;00m\n\u001b[1;32m   2491\u001b[0m \u001b[38;5;124;03m:class:`~torch.nn.BatchNorm3d` for details.\u001b[39;00m\n\u001b[1;32m   2492\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m   2493\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m has_torch_function_variadic(\u001b[38;5;28minput\u001b[39m, running_mean, running_var, weight, bias):\n\u001b[0;32m-> 2494\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mhandle_torch_function\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m   2495\u001b[0m \u001b[43m        \u001b[49m\u001b[43mbatch_norm\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2496\u001b[0m \u001b[43m        \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrunning_mean\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrunning_var\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbias\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2497\u001b[0m \u001b[43m        \u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2498\u001b[0m \u001b[43m        \u001b[49m\u001b[43mrunning_mean\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2499\u001b[0m \u001b[43m        \u001b[49m\u001b[43mrunning_var\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2500\u001b[0m \u001b[43m        \u001b[49m\u001b[43mweight\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2501\u001b[0m \u001b[43m        \u001b[49m\u001b[43mbias\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2502\u001b[0m \u001b[43m        \u001b[49m\u001b[43mtraining\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtraining\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2503\u001b[0m \u001b[43m        \u001b[49m\u001b[43mmomentum\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmomentum\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2504\u001b[0m \u001b[43m        \u001b[49m\u001b[43meps\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43meps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   2505\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   2506\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m training:\n\u001b[1;32m   2507\u001b[0m     _verify_batch_size(\u001b[38;5;28minput\u001b[39m\u001b[38;5;241m.\u001b[39msize())\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/overrides.py:1636\u001b[0m, in \u001b[0;36mhandle_torch_function\u001b[0;34m(public_api, relevant_args, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1630\u001b[0m     warnings\u001b[38;5;241m.\u001b[39mwarn(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDefining your `__torch_function__ as a plain method is deprecated and \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m   1631\u001b[0m                   \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwill be an error in future, please define it as a classmethod.\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m   1632\u001b[0m                   \u001b[38;5;167;01mDeprecationWarning\u001b[39;00m)\n\u001b[1;32m   1634\u001b[0m \u001b[38;5;66;03m# Use `public_api` instead of `implementation` so __torch_function__\u001b[39;00m\n\u001b[1;32m   1635\u001b[0m \u001b[38;5;66;03m# implementations can do equality/identity comparisons.\u001b[39;00m\n\u001b[0;32m-> 1636\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mtorch_func_method\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpublic_api\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtypes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1638\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m:\n\u001b[1;32m   1639\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m result\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/monai/data/meta_tensor.py:282\u001b[0m, in \u001b[0;36mMetaTensor.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m    280\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m    281\u001b[0m     kwargs \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m--> 282\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__torch_function__\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtypes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    283\u001b[0m \u001b[38;5;66;03m# if `out` has been used as argument, metadata is not copied, nothing to do.\u001b[39;00m\n\u001b[1;32m    284\u001b[0m \u001b[38;5;66;03m# if \"out\" in kwargs:\u001b[39;00m\n\u001b[1;32m    285\u001b[0m \u001b[38;5;66;03m#     return ret\u001b[39;00m\n\u001b[1;32m    286\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _not_requiring_metadata(ret):\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/_tensor.py:1443\u001b[0m, in \u001b[0;36mTensor.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m   1440\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m\n\u001b[1;32m   1442\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _C\u001b[38;5;241m.\u001b[39mDisableTorchFunctionSubclass():\n\u001b[0;32m-> 1443\u001b[0m     ret \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1444\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m func \u001b[38;5;129;01min\u001b[39;00m get_default_nowrap_functions():\n\u001b[1;32m   1445\u001b[0m         \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
      "File \u001b[0;32m~/anaconda3/envs/monai/lib/python3.9/site-packages/torch/nn/functional.py:2509\u001b[0m, in \u001b[0;36mbatch_norm\u001b[0;34m(input, running_mean, running_var, weight, bias, training, momentum, eps)\u001b[0m\n\u001b[1;32m   2506\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m training:\n\u001b[1;32m   2507\u001b[0m     _verify_batch_size(\u001b[38;5;28minput\u001b[39m\u001b[38;5;241m.\u001b[39msize())\n\u001b[0;32m-> 2509\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch_norm\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m   2510\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrunning_mean\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrunning_var\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtraining\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmomentum\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43meps\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbackends\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcudnn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43menabled\u001b[49m\n\u001b[1;32m   2511\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[0;31mOutOfMemoryError\u001b[0m: CUDA out of memory. Tried to allocate 20.00 MiB. GPU "
     ]
    }
   ],
   "source": [
    "best_metric = -1\n",
    "best_metric_epoch = -1\n",
    "epoch_loss_values = []\n",
    "metric_values = []\n",
    "writer = SummaryWriter()\n",
    "\n",
    "for epoch in range(max_epochs):\n",
    "    print(\"-\" * 10)\n",
    "    print(f\"epoch {epoch + 1}/{max_epochs}\")\n",
    "    model.train()\n",
    "    epoch_loss = 0\n",
    "    step = 0\n",
    "    for batch_data in train_loader:\n",
    "        step += 1\n",
    "        inputs, labels = batch_data[0].to(device), batch_data[1].to(device)\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = loss_function(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        epoch_loss += loss.item()\n",
    "        print(f\"{step}/{len(train_ds) // train_loader.batch_size}, \" f\"train_loss: {loss.item():.4f}\")\n",
    "        epoch_len = len(train_ds) // train_loader.batch_size\n",
    "        writer.add_scalar(\"train_loss\", loss.item(), epoch_len * epoch + step)\n",
    "    epoch_loss /= step\n",
    "    epoch_loss_values.append(epoch_loss)\n",
    "    print(f\"epoch {epoch + 1} average loss: {epoch_loss:.4f}\")\n",
    "\n",
    "    if (epoch + 1) % val_interval == 0:\n",
    "        model.eval()\n",
    "        with torch.no_grad():\n",
    "            y_pred = torch.tensor([], dtype=torch.float32, device=device)\n",
    "            y = torch.tensor([], dtype=torch.long, device=device)\n",
    "            for val_data in val_loader:\n",
    "                val_images, val_labels = (\n",
    "                    val_data[0].to(device),\n",
    "                    val_data[1].to(device),\n",
    "                )\n",
    "                y_pred = torch.cat([y_pred, model(val_images)], dim=0)\n",
    "                y = torch.cat([y, val_labels], dim=0)\n",
    "            y_onehot = [y_trans(i) for i in decollate_batch(y, detach=False)]\n",
    "            y_pred_act = [y_pred_trans(i) for i in decollate_batch(y_pred)]\n",
    "            auc_metric(y_pred_act, y_onehot)\n",
    "            result = auc_metric.aggregate()\n",
    "            auc_metric.reset()\n",
    "            del y_pred_act, y_onehot\n",
    "            metric_values.append(result)\n",
    "            acc_value = torch.eq(y_pred.argmax(dim=1), y)\n",
    "            acc_metric = acc_value.sum().item() / len(acc_value)\n",
    "            if result > best_metric:\n",
    "                best_metric = result\n",
    "                best_metric_epoch = epoch + 1\n",
    "                torch.save(model.state_dict(), os.path.join(root_dir, \"best_metric_model.pth\"))\n",
    "                print(\"saved new best metric model\")\n",
    "            print(\n",
    "                f\"current epoch: {epoch + 1} current AUC: {result:.4f}\"\n",
    "                f\" current accuracy: {acc_metric:.4f}\"\n",
    "                f\" best AUC: {best_metric:.4f}\"\n",
    "                f\" at epoch: {best_metric_epoch}\"\n",
    "            )\n",
    "            writer.add_scalar(\"val_accuracy\", acc_metric, epoch + 1)\n",
    "\n",
    "print(f\"train completed, best_metric: {best_metric:.4f} \" f\"at epoch: {best_metric_epoch}\")\n",
    "writer.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot the loss and metric"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9UAAAIjCAYAAAAN9jivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACVcklEQVR4nOzdeXhU9dn/8c9MlskeCAnZCDsS1gSDILjgEomACogtWvtAqUv1AZ9qWq1pVSxWaasiLdLqz2q1gBVBNgWCiKClRlAgEvZ9yZ4AWQhZZ87vjyQjY8KSEDhZ3q/rmutqTr4zuWeex5x8OPe5vxbDMAwBAAAAAIAGs5pdAAAAAAAALRWhGgAAAACARiJUAwAAAADQSIRqAAAAAAAaiVANAAAAAEAjEaoBAAAAAGgkQjUAAAAAAI1EqAYAAAAAoJEI1QAAAAAANBKhGmgi7777riwWi7799luzSwEAAK3MkSNHZLFY9O6775pdCoAfIFSjxagNred6fP3112aX2GSeeuopWSwWTZw40exSmh2LxaJp06aZXQYAAOd01113ycfHR8XFxedcc//998vT01MnTpy4bHWsWrVKFotFERERcjgc9a4533l18eLFslgs2rBhQ53vbdiwQXfffbfCwsLk6empjh076s4779SSJUua8i0ALYK72QUADTVjxgx169atzvGePXuaUE3TMwxD//73v9W1a1d9/PHHKi4ulr+/v9llAQCAi3T//ffr448/1tKlSzVp0qQ63z9z5oyWL1+u22+/XR06dLhsdSxYsEBdu3bVkSNH9Pnnnys+Pr5JXnf69OmaMWOGevXqpV/84hfq0qWLTpw4oVWrVmnChAlasGCBfvKTnzTJzwJaAkI1WpxRo0Zp8ODBZpdx2WzYsEHp6en6/PPPlZCQoCVLlmjy5MlXtIaqqio5HA55enpe0Z8LAEBrcNddd8nf31/vv/9+vaF6+fLlKikp0f3333/ZaigpKdHy5cs1c+ZM/fOf/9SCBQuaJFQvXrxYM2bM0D333KP3339fHh4ezu89+eSTWrNmjSorKy/55wAtCe3faHVq7zl65ZVX9Nprr6lLly7y9vbWiBEjtGPHjjrrP//8c91www3y9fVVu3btNHbsWO3evbvOuoyMDD3wwAOKiIiQzWZTt27d9Oijj6qiosJlXXl5uRITExUSEiJfX1+NHz9eeXl5F13/ggUL1LdvX918882Kj4/XggULnN/LycmRu7u7fv/739d53t69e2WxWPT66687jxUUFOjxxx9XVFSUbDabevbsqT/96U8uLWBnf16zZ89Wjx49ZLPZtGvXLlVUVOi5555TXFycAgMD5evrqxtuuEHr16+v8/NPnDih//mf/1FAQIDatWunyZMn67vvvqv3/q89e/bonnvuUVBQkLy8vDR48GCtWLHioj+jCykpKdGvfvUr5/vu3bu3XnnlFRmG4bJu7dq1uv7669WuXTv5+fmpd+/e+u1vf+uyZs6cOerXr598fHzUvn17DR48WO+//36T1QoAaH28vb119913a926dcrNza3z/ffff1/+/v666667dPLkSf3617/WgAED5Ofnp4CAAI0aNUrffffdJdWwdOlSlZaW6kc/+pHuvfdeLVmyRGVlZZf0mpL07LPPKigoSO+8845LoK6VkJCgO+6445J/DtCScKUaLU5hYaHy8/NdjlksljrtU//6179UXFysqVOnqqysTH/5y190yy23KC0tTaGhoZKkzz77TKNGjVL37t31/PPPq7S0VHPmzNF1112nrVu3qmvXrpKkzMxMDRkyRAUFBXr44YcVHR2tjIwMLV68WGfOnHG5ovvYY4+pffv2mj59uo4cOaLZs2dr2rRpWrhw4QXfW3l5uT766CP96le/kiTdd999mjJlirKzsxUWFqbQ0FCNGDFCH374oaZPn+7y3IULF8rNzU0/+tGPJFW3lo0YMUIZGRn6xS9+oc6dO+urr75SUlKSsrKyNHv2bJfn//Of/1RZWZkefvhh2Ww2BQUFqaioSP/4xz9033336aGHHlJxcbHefvttJSQkaPPmzYqNjZUkORwO3Xnnndq8ebMeffRRRUdHa/ny5fVeYd+5c6euu+46RUZG6umnn5avr68+/PBDjRs3Th999JHGjx9/wc/pfAzD0F133aX169frgQceUGxsrNasWaMnn3xSGRkZeu2115x13HHHHRo4cKBmzJghm82mAwcO6L///a/ztd566y393//9n+655x798pe/VFlZmbZv365NmzbR1gYAOK/7779f7733nj788EOXe5ZPnjypNWvW6L777pO3t7d27typZcuW6Uc/+pG6deumnJwcvfnmmxoxYoR27dqliIiIRv38BQsW6Oabb1ZYWJjuvfdePf30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fj377LPavn273n//ffXq1UvXXHON8/uLFy/WzTffrLffftvleQUFBS7/WH6xFixYIA8PD82bN6/OP/Rv3LhRf/3rX3Xs2DFnZ12XLl3q/VtI+v5vpNpz51VXXaXevXtr+fLl+stf/iI/P78G1we0RrR/o9VatmyZy/25mzdv1qZNmzRq1ChJUnh4uGJjY/Xee++poKDAuW7Hjh369NNPNXr0aEnVwWvcuHH6+OOP9e2339b5ORe6An0xjh8/ri+//FI//vGPdc8999R5TJkyRQcOHNCmTZskVd/rm5CQoA8//FAffPCBPD09NW7cOJfX/PGPf6yUlBStWbOmzs8rKChQVVXVBeuqPRmf/R43bdqklJQUl3UJCQmqrKzUW2+95TzmcDg0d+5cl3UdO3bUTTfdpDfffFNZWVl1fl5Dth47l9GjR8tut7tsLSZJr732miwWi/P//idPnqzz3Npp5uXl5ZKqtwk7m6enp/r27SvDMNiDEwBwUWqvSj/33HNKTU2tsze1m5tbnb8lFi1a1OgZIwsWLNANN9ygiRMn1vl74sknn5Qk/fvf/3auHz16tL7++mtt2bLF5XUKCgq0YMECxcbGKiwszHn897//vU6cOKEHH3yw3r8lPv30U33yySeNqh1oqbhSjRZn9erVzquOZxs+fLjzSqhU3UZ8/fXX69FHH1V5eblmz56tDh06uLRDv/zyyxo1apSGDRumBx54wLmlVmBgoJ5//nnnupdeekmffvqpRowYoYcfflh9+vRRVlaWFi1apI0bNzqHXjXW+++/79wKqj6jR4+Wu7u7FixYoKFDh0qqvif4pz/9qf72t78pISGhTg1PPvmkVqxYoTvuuEM/+9nPFBcXp5KSEqWlpWnx4sU6cuTIBf8F/I477tCSJUs0fvx4jRkzRocPH9Ybb7yhvn376vTp085148aN05AhQ/SrX/1KBw4cUHR0tFasWOEMrmdf5Z47d66uv/56DRgwQA899JC6d++unJwcpaSkKD09/aL25fz222/1hz/8oc7xm266SXfeeaduvvlm/e53v9ORI0cUExOjTz/9VMuXL9fjjz+uHj16SJJmzJihL7/8UmPGjFGXLl2Um5urv/3tb+rUqZOuv/56SdLIkSMVFham6667TqGhodq9e7def/11jRkzhiEtAICL0q1bNw0fPlzLly+XpDqh+o47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",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(\"train\", (12, 6))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.title(\"Epoch Average Loss\")\n",
    "x = [i + 1 for i in range(len(epoch_loss_values))]\n",
    "y = epoch_loss_values\n",
    "plt.xlabel(\"epoch\")\n",
    "plt.plot(x, y)\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.title(\"Val AUC\")\n",
    "x = [val_interval * (i + 1) for i in range(len(metric_values))]\n",
    "y = metric_values\n",
    "plt.xlabel(\"epoch\")\n",
    "plt.plot(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluate the model on test dataset\n",
    "\n",
    "After training and validation, we already got the best model on validation test.  \n",
    "We need to evaluate the model on test dataset to check whether it's robust and not over-fitting.  \n",
    "We'll use these predictions to generate a classification report."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.load_state_dict(torch.load(os.path.join(root_dir, \"best_metric_model.pth\")))\n",
    "model.eval()\n",
    "y_true = []\n",
    "y_pred = []\n",
    "with torch.no_grad():\n",
    "    for test_data in test_loader:\n",
    "        test_images, test_labels = (\n",
    "            test_data[0].to(device),\n",
    "            test_data[1].to(device),\n",
    "        )\n",
    "        pred = model(test_images).argmax(dim=1)\n",
    "        for i in range(len(pred)):\n",
    "            y_true.append(test_labels[i].item())\n",
    "            y_pred.append(pred[i].item())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "   AbdomenCT     0.9930    0.9920    0.9925       995\n",
      "   BreastMRI     0.9966    0.9932    0.9949       880\n",
      "         CXR     1.0000    0.9959    0.9980       982\n",
      "     ChestCT     0.9912    1.0000    0.9956      1014\n",
      "        Hand     0.9971    0.9914    0.9943      1048\n",
      "      HeadCT     0.9929    0.9980    0.9954       976\n",
      "\n",
      "    accuracy                         0.9951      5895\n",
      "   macro avg     0.9951    0.9951    0.9951      5895\n",
      "weighted avg     0.9951    0.9951    0.9951      5895\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_true, y_pred, target_names=class_names, digits=4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cleanup data directory\n",
    "\n",
    "Remove directory if a temporary was used."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "if directory is None:\n",
    "    shutil.rmtree(root_dir)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
